Nick
ктсати в примерах упоминается db.close();
Nick
и да есть аткая дичь: var db = new Db('test', new Server('localhost', 27017)); // Establish connection to db db.open(function(err, db) { assert.equal(null, err); db.on('close', test.done.bind(test)); db.close(); });
Nick
хотя лучше не слушайте меня это было про старый драйвер))) и в кновом только монгоклиент можно закрыть
Nan0
ребят, немного не пойму смысл от применения вложенного id, например с оператором $group: { $group: { _id: "$images_new._id", tags: { $first: "$images_new.tags" } }}
Nan0
если напишу вместо $images_new._id просто $images_new, то я все равно получаю тот же результат
Nick
поле _id в group указывает значение для группировки, в вашем случае какждый объект походу уникален и вы не видите разницы, на самом деле под какпотом указывая images_new._id идет группирвоака по значению этого поля. А когда сам images_new, то сравниваются объекты на равенство
Nick
т.е. { _id:1 f1:1 } и { _id:1 f1:2 } по _id сгруппируются, а в случает сравнения объектов - нет
ᅠ ᅠ ᅠ ᅠ
кто-то создавал бесплатный sandbox на mlab для хранения mongodb бд? не знаете, там 1 такой можно бесплатный держать или несколько? пробовал уже облачный кластер от монги под java driver, тоже неплох, но не под любую версию удобно подключать и только 1 бесплатный дают
ᅠ ᅠ ᅠ ᅠ
Только там нет возможности кластера в песочнице
в смысле нет? 1 sandbox бесплатный можно, а несколько таких? я именно бесплатные имею ввиду
Yurii
в смысле нет? 1 sandbox бесплатный можно, а несколько таких? я именно бесплатные имею ввиду
Да, ты можешь держать несколько бесплатных инстансов по 500 МБ, но они не могут быть в шарде или реплике
Евкакий
Всем привет Можно как-нибудь сделать поле в схеме уникальным и независимым к регистру?! Сейчас только с unique: true qQQ и QQQ и qqq записывает как 3 разные записи
Евкакий
Схема имеется ввиду mongoose :)
Andrew
// directly without options var Person = new Schema({ title : String }); // or with options var Person = new Schema({ title : { type: String, lowercase: true } });
Andrew
http://mongoosejs.com/docs/2.7.x/docs/schematypes.html
Евкакий
lowercase: true Ну тогда он и хранится будет в нижнем регистре
Евкакий
А мне нужно хранение как пользователь введет qWeQweR
Daniil
тольок перед сохранением чекать уникальность
Andrew
Понял, получается надо хранить как ввел, но при добавлении такого же с другим кэйсом отфильтровывать по уникальности
Andrew
Угу
Евкакий
db.collection.find({"name_lower": thename.toLowerCase()}) не помогает
Евкакий
db.collection.find( {"name_lower": { $regex: new RegExp("^" + thename.toLowerCase(), "i") } } ); Вообще дичь
Daniil
ну не дичь у тебя частный случай просто
Daniil
вообще можешь хранить юник значение в ловеркейсе и оригинал вместе))
Daniil
но это костыль
Евкакий
Легкий путь :)
Евкакий
Зато надежный на 1000%
Andrew
A case insensitive index если?
Andrew
https://docs.mongodb.com/manual/core/index-case-insensitive/
Евкакий
db.collection.find( {"name_lower": { $regex: new RegExp("^" + thename.toLowerCase(), "i") } } ); Вообще дичь
Есть имя 'ppp' при попытке ввести 'pp' пишет что есть такое имя Или я просто с регулярками не разобрался или так будет всегда?!
Andrew
Я вообще не понял зачем там регулярка) оба в один кейс переводи и все
Евкакий
В том-то и проблема что не могу оба пеевести
Евкакий
Хз как, весь день на это убил
Andrew
В переменную запихни в коде выше
Andrew
Сделай to upper
Andrew
И в запросе его же
Евкакий
Нет, как в ловер преобразовать уже хранимое в монге значение при поиске?
Евкакий
db.collection.find({"name_lower": thename.toLowerCase()}) ничего не находит и записывает новое zZz ZZZ zzz
Andrew
Попробуй индекс регистронезависимый с ключем уникальности
Andrew
Но я не пробовал, может сработает
Andrew
Ссылку на построение индекса выше кинул
Евкакий
Спасибо, с него всё и начиналось 😂
Евкакий
Часов 7-8 назад)))))
Andrew
Ахах)
Евкакий
Или я ацккий рукожоп
Евкакий
Тоже вариант
Andrew
Ну тогда через find находишь, db.collection.findOne(условие)[0][fieldname]
Andrew
И приравняй к переменной
Andrew
Т.е. вытаскивается запрос как массив, берется нулевое значение из массива, отфильтровывается по полю
Andrew
В синтаксисе мог немного ошибиться, надо на конкретном примере пробовать
Евкакий
Извиняюсь, но не понял )))
Евкакий
Выдирать всех zz zZZzz zzzzzzz и потом циклом сравнививать со значением переменной?! :)
Евкакий
find({"name_lower" - это из старой версии?
Евкакий
https://docs.mongodb.com/manual/core/index-case-insensitive/
Дело было не в бобине )))) С хз какого раза получилось ))))
Евкакий
Спасибо :)
Andrew
А я уже в обход скрипт решил запилить)
Andrew
Ну и отлично
Евкакий
В плане? :)
Евкакий
Я правда locale нифига не понял, но на английском пока рабоатет :)
Andrew
Ну в плане как что и с чем сравнить в скрипте)
Andrew
a=db.getCollection('collection').aggregate({$match:{a:/qqq/i}}, {$project:{'a':{$toLower:'$a'}}}, {$group:{_id: '$a' }} ).toArray()[0]["_id"]
Andrew
Вот такой запрос как я понял. Ищем по регулярке, переводим в lower, группируем по полю, берем первый из массива полученных результатов
Andrew
типа если было qqq и qQq то запрос выдаст только qqq
Andrew
а далее с этой переменной сравнить
Евкакий
А если запрос qq выдаст qqq? У меня с регулярками была такая проблема :)
Andrew
^qqq$ вот так например
Andrew
регулярку
Andrew
http://regexr.com/
Andrew
вот тут можно вводить строки, регулярки и тренироваться
Евкакий
Всем спасибо, буду дальше издеваться и искать ещё варианты :)
Евкакий
Всё, 2 рабочих варианта есть, день не совсем просран ))))))
Евкакий
Dmitry
Всем привет) Подскажите, смогу ли я установить MongoDB, если мой хостинг предоставляет БД MySQL и PostgreSQL ?
Евкакий
Привет. Пробуй:) Или у них спроси)
Dmitry
хз, я только фронтом занимался, вот приспичило самому в Монго разобраться, первый день сижу ковыряюсь..
Dmitry