- Регистрация
- 07.09.2015
- Сообщения
- 557
- Благодарностей
- 550
- Баллы
- 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