Amir
а из монги выгрузить в json только саму структуру коллекции можно? без данных
Semyon V
какие best practices по хранении связей записей? ссылка на ObjectId видится мне не слишком надёжной потому как при поверхностном гуглении нашёл информацию о том, что при экспорте-импорте они могут спокойно поменяться
Nick
если вы не удаляете поле _id, то оно не будет заменяться само по себе
Anonymous
операции db.colection.findOne/updateOne в монгошелел синхронно выполняются или промисами? синхронно
Semyon V
и вам не хворать
Semyon V
какой-то здц, товарищи
Semyon V
почти одна тысяча двести человек серьёзных людей и тут вот такое
yopp
а из монги выгрузить в json только саму структуру коллекции можно? без данных
У коллекций нет «структуры» или «схемы». Данные хранятся в виде документов с произвольной структурой.
yopp
почти одна тысяча двести человек серьёзных людей и тут вот такое
Виновный забанен, в следующий раз хайлайте админов
Gor
@dd_bb а кто еще из админов есть?
yopp
@pragus и @lig11
Gor
спс
yopp
И теперь ещё и @yatoba
Gor
может список куда то в description вынести раз нет /report бота?
Roman
А?
Gor
перекличка админов)
Nick
И теперь ещё и @yatoba
Спасибо за доверие
Joseph
Доброе утро , а подскажите как можно найти в массиве по кусочку . У меня есть 2 id мне надо найти только те роуты в которых есть эти 2 метки подряд db.getCollection('routes').find({"waypoints":{$elemMatch: {label: {$in:[id1,id2]}}}}) Что то пока не сообразил
Semyon V
$all? (https://docs.mongodb.com/manual/reference/operator/query/all/)
Semyon V
ах, label это строка?
Joseph
ну посути строка
Semyon V
нужно одним запросом найти 2 записи с разными ObjectId?
Joseph
Вообще желательно что бы они были подряд , но это я могу и на js отфилтровать
Semyon V
waypoints это массив объектов? label - массив ObjectId?
Joseph
Joseph
а waypoints это да массив объектов
Semyon V
тогда я бы сказал что у тебя верный запрос для этого
Joseph
Сейчас покажу что бы я хотел сделать
Joseph
Пример [1,2] => [1,2,4,7] [23,6,9,0] [4,2,8,0,1] [5,4,3,2] получить на выходе [1,2,4,7] [4,2,8,0,1]
Joseph
а мой запрос мне выведет [1,2,4,7] [4,2,8,0,1] [5,4,3,2]
Joseph
мне надо что бы обяхательно были именно эти две метки в массиве иначе слишком большая выборка получается
Semyon V
да, попробуй тогда с $and уточнить
Semyon V
(он же $all)
Joseph
да, попробуй тогда с $and уточнить
я пробывал так db.getCollection('routes').find($and:{ {"waypoints":{$elemMatch: {label: id1}}}} {"waypoints":{$elemMatch: {label: id2}}} }) Что то не очень проканало
Joseph
"waypoints" : [ { "label" : ObjectId("5b6d60ba77e3a748a4fead1c") },
Павел
db.getCollection('testcollection').find({ "$or": [{"waypoints.label": {"$eq": ObjectId("5b6d60ba77e3a748a4fead1c")}}, {"waypoints.label": {"$eq": ObjectId("5b6d60ba77e3a748a4fead1f")}}] })
Павел
/* 1 */ { "_id" : ObjectId("5cb6d139f11c96848630a27b"), "waypoints" : [ { "label" : ObjectId("5b6d60ba77e3a748a4fead1c") } ] } /* 2 */ { "_id" : ObjectId("5cb6d139f11c96848630a27e"), "waypoints" : [ { "label" : ObjectId("5b6d60ba77e3a748a4fead1f") } ] }
Joseph
Спасибо большое за помощь
Joseph
Зачем?
Потому что мне надо что бы сразу было вхождения и первого лейбла и второго в одном waypoints
Павел
ну так ты мне кинул с одним
Joseph
ну так ты мне кинул с одним
Дурацкий пример 😐
Павел
и вообще непонятно что ты хочешь, что значит вхождения всех лейблов
Павел
У тебя есть айдишки, и ты хочешь выбрать все элементы с айдишкой которая входит в твои айдишки или что
Joseph
Joseph
У тебя есть айдишки, и ты хочешь выбрать все элементы с айдишкой которая входит в твои айдишки или что
У меня есть массив объектов, я хочу посмотреть есть ли у меня в этом массиве сразу 2 объекта которые равны моим входным idкам
Joseph
$group + $match + count
Зачем тут count ?
Павел
чтобы посмотреть где результат матча выдаст 2 обджекта
Anonymous
Подскажите, можно восстановить ли дропнутую коллекцию?
Anonymous
если есть реплика
Так она же синхронизируется и тоже дропает
Anonymous
А на системном диске не мог сохраниться файл, где нибудь?
Anonymous
Это же по сути удаление файла с коллекцией?
Ivan
Нет
даже oplog не поможет?
yopp
в идеале да
Если репликация не остановлена, то без «идеала», как только приедет запись журнала с удалением, коллекция будет удалена
yopp
даже oplog не поможет?
Журнал ограничен по размеру, из него можно теоретически достать только небольшую часть последних данных.
Artem
Я пытаюсь выбрать все документы у которых нету элементов массива с указаным id и type, но в результате я не чего не нахожу, можете подсказать что я не так делаю db.chains.find( { _id: '48d2f123-b3e6-4aad-9507-9c58d9bc5715', 'statistics.elements': { '$elemMatch': { id: { '$ne': '01e4e8bd-ada4-4987-930b-31a4d0f59a52' }, 'type': { '$ne': 1 } } } } );
Artem
разобрался вроде так нужно было сделать db.chains.find( { _id: '48d2f123-b3e6-4aad-9507-9c58d9bc5715', 'statistics.elements': { $not: { $elemMatch: { id: '01e4e8bd-ada4-4987-930b-31a4d0f59a52', type: 2 } } } } );
Denys
всем привет) подскажите плз, надо сделать поиск: const currentNotification = await models.NotificationsModel .findOne({ action, article, comment, $or: [{ receiver: receiverUser }, { receiver: undefined }], }); но receiver, может быть, а может и нет, как его сделать не обезательным?) $or не сильно мне помого))
Max
Привет, кто-то дружил tableau с монгодб (атлас)? Не могу ни найти, ни нагуглить как это сделать
Denys
$or: [ {receiver: {$exists: false}}, {receiver: receiverUser}, ]
ну у меня в receiverUser может быть айди, а может быть undefine, могу ли я так написать receiver: {$exists: receiverUser}
Semyon V
{ $exists: false } покрывает только кейс с undefined
Semyon V
а { $exists: receiverUser } = { $exists: true }
Semyon V
поэтому $or: [ {receiver: {$exists: false}}, {receiver: receiverUser}, ]
Denys
поэтому $or: [ {receiver: {$exists: false}}, {receiver: receiverUser}, ]
$exists: false не отработал, true отработал