- Регистрация
- 07.09.2015
- Сообщения
- 557
- Реакции
- 555
- Баллы
- 93
У базы ограничение по размеру в терабайтахПравильно понимаю, она все пишет в один файл? то есть будет ограничение на макс размер?
ну там если данных на 10-20 гб...

У базы ограничение по размеру в терабайтахПравильно понимаю, она все пишет в один файл? то есть будет ограничение на макс размер?
ну там если данных на 10-20 гб...

Эта тема хороша,но не раскрыта инструкция. По условию конкурса,надо чтобы было подробно описано как пользоваться.
У тебя краткая инструкция, это значит тема не для новичков или для тех кто хочет познать базы данных. Скорее для тех кто уже в БД работает долгое время и понятна суть работы.
В кубике-код,только шаблоны-примеры заполнения. Но никаких переменных нет,получается не понять будет как парсить любой сайт.
На скриншотах ты раскрыл как парсил в БД "звездные войны" по всем переменным. Неплохо было бы и шаблон прислать как спарсил сайт.
В этом сообщении уже приводил пример с переменными проекта.Пример того же ЯМ или другово ресурса будь то ИМ или каталог фильмов был бы отличным примеров.
//если из переменной проекта
string json = project.Variables["json"].Value;
//или прямо из строки
//string json = @"{"title": "value"}";
// Объявляем объект для lock'a
object NoSQL = new object();
//именно в создании документа отличие от методов описанных ТС
BsonDocument bd = LiteDB.JsonSerializer.Deserialize(json).AsDocument;
//дальше все как описал RoyalBank
if (true)
{
lock(NoSQL)
{
using(var db = new LiteDatabase(Path.Combine(project.Directory, @"dbname.db")))
{
var col = db.GetCollection(DateTime.Now.Date.ToString("dd_MM_yyyy"));
col.Insert(bd);
}
}
}
Привет
поделитесь пожалуйста снипетом которым можно делать обращение к базе и доставать оттуда данные / удалять и изменять
У меня такой же траблУ меня получилось настроить чтобы парсилось в базу, а как теперь получить оттуда строку или обновить строку или удалить

У меня не было необходимости в изменении данных в БД, поэтому в этом не подскажу. Один из вариантов, как получить из БД инфу показывал RoyalBank в шаблоне, в кубике «Перебор и взятие значений из базы». От себя добавлю еще пару вариантов.У меня получилось настроить чтобы парсилось в базу, а как теперь получить оттуда строку или обновить строку или удалить
object NoSQL = new object();
string dbname = "dbname.db"; //имя бд
string connect = project.Directory + dbname; //путь к бд
lock(NoSQL)
{
using(var db = new LiteDatabase(connect))
{
List<string> cols = new List<string>(db.GetCollectionNames()); //получили в список все коллекции в бд
string colname = cols.ElementAt(1); //взяли из списка коллекций нужную строку 1
var col = db.GetCollection(colname); //получили коллекцию с именем colname
var el = col.FindOne(Query.EQ("ИмяСтолбца", "ЗначениеПоКоторомуНужноВзятьСтроку")); //Получили из коллекции BSON документ (строку)
//Получаем только значение нужного поля
string cellvalue = el["FieldName"].AsString; //Здесь можно выбрать, в каком виде вернуть данные т.е. string, int etc
//Получаем в json всю строку и разбираем ее средствами ZP
string str = LiteDB.JsonSerializer.Serialize(el, true, true); //Перегнали его в JSON
project.Json.FromString(str); //Раcпарсили JSON
}
}
object NoSQL = new object();
string dbname = "dbname.db"; //имя бд
string connect = project.Directory + dbname; //путь
lock(NoSQL)
{
using(var db = new LiteDatabase(connect))
{
List<string> cols = new List<string>(db.GetCollectionNames()); //получили в список все коллекции в бд
string colname = cols.ElementAt(1); //взяли из списка коллекций строку 1
var col = db.GetCollection(colname); //получили коллекцию с именем colname
IEnumerable<BsonDocument> items = col.FindAll().ToList();
/*
//Вариант1
int c = items.Count();
for(int i=0; i<c; i++)
{
//берем строку из БД
BsonDocument item = items.ElementAt(i);
//получаем в строковые переменные значения строки БД
string cell1value = item["Field1Name"].AsString;
string cell2value = item["Field2Name"].AsString;
string cell3value = item["Field3Name"].AsString;
}
*/
//Вариант 2
foreach(var item in items)
{
string cell1value = item["Field1Name"].AsString; //В строку
string cell2value = item["Field2Name"].AsString; //В строку
project.Variable["varname"] = item["Field3Name"].AsString; //В переменную проекта
}
}
}
Я не пользуюсь базой для получения данных, только хранение. Работать с базой можно через классы из общего кода.если покажешь пример как мапить BsonDocument в свой объект
Да смотрел я там, и так и эдак крутил-вертел — класс создать не проблема, а вот смапить в него Bson... Не выходит каменный цветок и все тут... Вообще конечно не хватает либе подробных доков с примерами.Я не пользуюсь базой для получения данных, только хранение. Работать с базой можно через классы из общего кода.
Тут по ссылке пример класса: https://github.com/mbdavid/LiteDB/wiki/Object-Mapping


