iwahid
Ребят, привет. Подскажите, пожалуйста, как создать коллекции в коллекциях на ноде через монгус? Нужны под коллекции
Eva🇺🇦
Привет! Как лучше всего обратиться к бд, чтобы миллион запросов не повалил ее? В каком направлении копать?
Nikita
миллион в секунду?:)
Nikita
bulk, sharding, replicas, queue, indexing, perf-testing если направления:) а так нужно больше подробностей о характере запросов и задачи
Eva🇺🇦
bulk, sharding, replicas, queue, indexing, perf-testing если направления:) а так нужно больше подробностей о характере запросов и задачи
Нет, не в секунду У меня есть огромный массив айдишек юзеров, сейчас я обращаюсь к нему через map, создавая на каждую айдишку отдельный запрос к бд Очень большая нагрузка, нужно одним запросом сделать все это
Nikita
findAll $in: ids ? :)
Nikita
ой, смешалось со спрингом find $in https://docs.mongodb.com/manual/reference/operator/query/in/
Nikita
но я не уверен что дергать на 1кк элементов будет оптимально, так же как тянуть 1кк в прилагу
Oleg
можно ли сделать, чтобы поле реферал после lookup, не было массивом? или это норм поведение и его не избежать
Nick
можно ли сделать, чтобы поле реферал после lookup, не было массивом? или это норм поведение и его не избежать
так работает lookup, для него не имеет значения один к одному там или нет, просто формирует массив (может быть и пустым). Собственно выше уже сказали что можно использовать $unwind для разворачивания списка, но тут надо быть осторожным, т.к. если пустой список будет то ни одного дока это не породит. Если у вас известно что всегда будет только один объект, то можно через $project и $arrayElemAt вытащить объект с нулевого места и сохранить в какоето поле. Не знаю что будет если элемента там не будет, тут поэкпериментируйте или проверьте размер массива через $cond и $size прежде чем обращаться к элементу массива
Niki ️
Подскажите можно в индекс запихнуть кастомную валидацию?
Aryn
КРАСАВА!
Спасибо)) @mxxnseat, а как достать все элементы из members?
Anonymous
а какой аутпут?
Artem
Всем привет. Помогите с запросом к базе если такое вообще реально реализовать. Хочу сделать поиск по ключевому слову, но в результаты поиска хочу вставить данные о количестве записей между результатами поиска(если это не соседние айдишки). Т.е если порядковые айдишки и в выдаче в поиске 1, 2, 7, то между вторым и третьим результатом надо показать, что там еще 4 записи присутствуют. Можно ли это реализовать без отдельного запроса в базу для каждого гэпа?
Artem
айдишки автоинкременты? и я так понимаю в промежутках могут быть пробелы типа не быть доков?
айдишки objectid, и да, основная проблема, что у меня могут отсутствовать некоторые доки в промежутке, поэтому я не могу посчитать их как разницу в айди
Nick
а как должен выглядеть результат примерно? какая струтктура должна получиться
Artem
что-то вроде [ {type: “field”, _id: ObjectId(“guid”), value: “value1”}, {type: “gap”, count: 5}, {type: “field”, _id: ObjectId(“guid+5”), value: “value2”}, ]
S
Всем привет! Подскажите плз как найти последний созданный или обновленный документ в коллекции?
madspectator
Всем привет! Подскажите плз как найти последний созданный или обновленный документ в коллекции?
Если вы вручную не заполняете _id поле, то последний созданный документ будет иметь наибольшее значение в поле _id. Последний обновлённый документ можно определить только, если вы вручную обновляете какое-либо поле и записываете туда дату обновления.
madspectator
В документе есть два поля - createDate и updateDate
Сортируете по этим полям в обратном порядке и берите первый документ
Мағжан
всем привет! Подобная ошибка говорит о том что колекция которая я хочу записать даныне не существует ? Cannot create namespace *.* in multi-document transaction.
Мағжан
Кто может подсказать?🥺🥺🥺
Danil
Здравствуйте, тут же по motor pymongo помогают?
Danil
Здравствуйте, тут же по motor pymongo помогают?
Если кто-то знает, как можно узнавать айди которое автоматически ставится в документ, мне нужно брать все значения из ключа "_id" из всех документов, кто-то знает как это реализовать? Или же это наверное не правильно, я просто хочу сделать рассылку, и пытаюсь использовать всё, но я уже везде обыскал, хочу попробовать брать все значения из всех документов коллекции, ключа _id, но не знаю как это реализовать, поможете?
Пол
Привет. $pull to a non-array value. Подскажите как тогда удалить значение из ключа. С одним objectId
Anonymous
.count() занимает 12 секунд
db.collection.count() не считает фактическое количество документов, он возвращает результаты на основе метаданных коллекции, что может привести к приблизительному подсчету.
Anonymous
https://docs.mongodb.com/manual/reference/method/db.collection.count/index.html
Anonymous
Для правильного различения в MonogDB введены countDocuments() и estimatedDocumentCount().
Danil
Ребят, а как сделать что бы каждого нового пользователя регестрировало с нумерацией типо "_id": 1 2 3 И тд
Danil
Самому _id указывать
Для каждого юзера? ,_,
Just
Всем привет, как создать схему такого типа: methods: { ["VK" || "TG" || "FB"]: Id, } Т.е. просто объект, где ключ - enum, Id - Number
Р00-👨🏻‍💻Михаил
Добрый вечер Что быстрее выполняется? Или одинаково? а) Аггрегация с подсчетом суммы коллекции продаж по временным интервалам б) Фетч продаж в временной интервал и пробор суммы с помощью JS
artem
народ а можно ка-то сделать так чтоб данные в монге обнулялись в 10 часов утра по москве например?
artem
в плане просто ключи принимали значение 0
artem
т.е в течение для это значение накапливается
artem
а в 10 00 принимает 0
Dmitry
Это тебе нужен планировщик, который будет вызывать запрос, чтобы значения переписать
Oleg
кто подскажет, что за compound и зачем он создается?
Oleg
Viktar
кто подскажет, что за compound и зачем он создается?
составной индекс https://docs.mongodb.com/manual/core/index-compound/
Oleg
составной индекс https://docs.mongodb.com/manual/core/index-compound/
Я читал, но что то не понял)) Нафига он создаётся автоматически
Viktar
Я читал, но что то не понял)) Нафига он создаётся автоматически
он не создаётся автоматически, у вас прописана команда по его созданию
Viktar
с помощью него ещё достигается уникальность по этим полям
Dmitriy
Коллеги, поскажите пожалуйста, если сделать findOne {sort: [['_id', -1]]}, то это будет 100% что вернуться именно последняя добавленная запись?
Dmitriy
То есть не может быть такого что айдишник сгенерируется такой, что он по определнию будет меньше чем последний*
Nick
Коллеги, поскажите пожалуйста, если сделать findOne {sort: [['_id', -1]]}, то это будет 100% что вернуться именно последняя добавленная запись?
да вернется последняя добавленная, главное тут понимать где генрится _id. Если его проставляет ваш драйвер, то могут быть разбежки и гарантий не будет, если на монге при вставке, то там да строго монотонный рост
Dmitriy
ну а вообще задача такая, что раз в сутки крон парсит курсы валют и добавляет запись в коллекцию с направлениями. И мне нужно что бы я всегда обращался к базе и при запросе мне выдавались последние добавленные данные.
Dmitriy
Ну я понял, если через mongodb то там строго) Спасибо!
Dmitriy
ну можно и так, но вообще проблем быть не должно)
Aryn
Не подскажите, в чём прикол?: OperationFailure: Unrecognized pipeline stage name: '$unset', full error: {'ok': 0.0, 'errmsg': "Unrecognized pipeline stage name: '$unset'", 'code': 40324, 'codeName': 'Location40324'}
Aryn
[{"$unwind": "$members"}, {"$match": {"members.count": {"$ne": 0}}}, {"$sort": {"members.count": -1}}, {"$limit": limit}, {"$group": { "_id": None, "members": {"$push": "$$ROOT"} }}, {"$addFields": {"merge": {"$map": { "input": "$members", "as": "doc", "in": { "$mergeObjects": [ {"count": "$$doc.members.count"}, {"user_id": "$$doc.members.user_id"}, {"chat_id": "$$doc.chat_id"} ] } }}}}, {"$unset": ["members", "_id"]}, {"$unwind": "$merge"}, {"$replaceRoot": {"newRoot": "$merge"}}]
Aryn
None = null На всякий
Aryn
версия монги?
Не подскажешь, где она хранится?
Aryn
Aryn
db.serverStatus().version
Не запускается mongod..
Aryn
Обычно запускаю БД через systemctl start mongodb
Nick
Не запускается mongod..
на 3.6 $unset в агрегациях не было еще, появился в 4.2
Aryn
Не запускается mongod..
Впервые такая херь
Aryn
на 3.6 $unset в агрегациях не было еще, появился в 4.2
Интересно, вроде только что купил VPS
Aryn
на 3.6 $unset в агрегациях не было еще, появился в 4.2
А если хочу установить 4.4.6, то устанавливать PGP-ключ для 4.4?
Aryn
пиздец замарочусь пока обновлю..
Nick
https://docs.mongodb.com/v4.4/administration/install-on-linux/
Oleg
Всем добрый вечер, можно ли как то запретить использовать методы типа dropDatabase, удаление коллекции?