Марк
а покажи всю команду
mongoexport --db=bd_new --collection=cps.app_data --out=data.json
Марк
А чтобы работала эта команда, кроме компаса еще должно быть что то установлено?
Анатолий
ты в компасе это запускаешь?
Анатолий
это консольная команда, и компас для нее не нужен, монга нужна
yopp
в коммандной строке Mongo SH Beta
вам необходимо установить database-tools https://docs.mongodb.com/database-tools/installation/#installation а потом из в вашем терминале, из командной строки выполнить экспорт mongoexport --db=bd_new --collection="cps.app_data" --out=data.json не в monggo шелле
yopp
какая у вас операционная система?
yopp
системный терминал
yopp
виндовс
тогда powershell или cmd
Марк
тогда powershell или cmd
ааа, даже так
Марк
тогда powershell или cmd
Я еще не исчерпал свой лимит на глупые вопросы?) Скачал The MongoDB Database Tools. В архиве зашел в папку bin, далее нажал на mongoexport.exe. И ничего не произошло) Потом зашел в cmd, вбил команду и мне написало: "mongoexport" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
yopp
вам в терминале необходимо перейти в папку с файлом mongoexport.exe и выполнить команду там
Viktar
Попробуйте перейти в папку Бин и в смд набрать монгоэкспорт
Марк
Спасибо!
no
Подскажите, можно ли указывать другую схему, вместо типа элементов массива?
no
спасибо 😊
Google
Всем привет можете помочь исправить ошибку ( mongodb есть возможность сделать фильтр ) есть массив но там на некоторый полях есть ( centerName ) как сделать фильтр чтобы где нет centerName в массив не попадало |?
Google
такой запрос у меня ( await User.find( {}, {centerName:1, _id:1}).lean(); )
Google
centerName: {$exists: true}
await User.find( {}, {centerName: {$exists: true}, _id:1}).lean(); так поподаю в catch error
Nick
filter это первые скобки
Nick
( await User.find( {centerName: {$exists: true}}, {centerName:1, _id:1}).lean(); )
Google
await User.find({ centerName: { $exists: true } }, { centerName: 1, _id: 1 }).lean(); всё равно - поподаю в catch erro
Google
Google
( await User.find( {centerName: {$exists: true}}, {centerName:1, _id:1}).lean(); )
Спасибо сработало там было отпечатки 😁😁
Joe
Спасибо сработало там было отпечатки 😁😁
Тебе ж нужно было чтобы их не было. Или перепутал?
Google
Тебе ж нужно было чтобы их не было. Или перепутал?
чтобы было а где нет чтобы не поподали | id
Joe
Понял. Значит все ок
Illia
можно ли сделать populate, но чтобы еще результат был отфильтрован по определенному полю? пробовал match, но почему-то не сработал.
Illia
а покажите как матч использовали
Получаю такой результат: ItemCustomCollection: { "identifier": "value1", customCollections: [ { "name": "fielName", "identifiers": ["value1","value2"] -> проблема, что здесь еще и "value2", хотя я хочу фильтровать по identifier ("value1") }]; } testSchema.virtual('customCollections', { ref: 'ItemCustomCollection', localField: 'identifier', foreignField: 'identifiers', justOne: false, match: {'identifier': {$in: 'identifiers’}} });
Illia
https://mongoosejs.com/docs/api.html#query_Query-populate
попробовал как в доке, но все равно не фильтрует почему-то, даже влоб хардкодом match: {identifiers: new RegExp('value1', 'i')}
Illia
возможно проблема в том, что identifiers это массив строк
Anonymous
Всем привет. Как создать базу данных в mongodb.com
Anonymous
Или нельзя через веб?
srs
Всем привет. Как создать базу данных в mongodb.com
Слишком странно сформулированно предложение. Но если надо быстро развернуть и потыкать могу, рекомендую mlab.
Владислав
Всем привет У меня есть коллекция с логами (userid, date). Можно как-то одним запросом сделать так, чтобы у каждого пользователя осталось только по 10 записей? В postgres это можно сделать оконными функциями, а тут в доках ничего подходящего не нашел.
Anonymous
"или может в в монге можно сделать db.ads.find({"_id": [1, 2, 3] ]}) ?", да, только вот так db.ads.find({"_id": {$in: [1, 2, 3]}})
а если id-шников много будет, как это будет работать? например при 1000 идшников монга будет на каждый запрос обходить эти id-шники или по умному как нибудь разобьет на два запроса и конкуретно их выполнит и потом заджоинит результат? интересно как это в изнанке работает)
Nick
Ребят, всем ку. Кто может подсказать, как грамотно все организовать. Есть два микросервиса, условно channels и ads каждый микросервис пишет в свою коллекцию в сервис ads приходит запрос, на получение списка объявлений /api/v1/ads/list в самой функции, мне нужно одним запросом сходить в коллекцию channels и собрать каналы по фильтрам gt,lt крч, допустим получаю массив из 20 элементов потом же мне нужно получить информацию, связанную именно с деталями объявления для каждого канала (коллекция ads) это нормальная практика: - одним запросом получаю список каналов - потом в for range для каждого канала делаю индивидуальный запрос на получение инфы. Тоесть если в списке 20 каналов (которые достал одним запросом) после придется делать еще 20 запросов, что бы получить дополнительную информацию для каждого канала Это вообще здоровая практика? Или сервер сразу просядет при повышении rps, здесь стоит применить что-то типа агрегации или пайплайнов? в итоге мне нужно собрать примерно следующую структуру { "ads": [ { "channel_id": 1, // получаю из коллекции channels "conditions": [] // получаю из коллекции ads }, { "channels_id": 2, "conditions": [] }, { "channel_id": 3, "conditions": [] } ] } список из channel_id получаю одним запросом, но потом для каждого мне нужно забрать conditions из другой коллекции по фильтру channel_id тоесть это одним запросом уже не сделать или может в в монге можно сделать db.ads.find({"_id": [1, 2, 3] ]}) ? объяснил как мудак, понимаю)))) но может кто-то сможет просвятить?)
Вам нужен $lookup
N
/stat@combot
N
хело гайз. пытаюсь в монгусе сделать такую штуку. филд должен быть массивом из двух юзеров, и сам филд должен быть уникален, т.е. если в разных документах повторится один юзер, то ладно...но не оба одновременно. Пишу так: users: { type: [{ ref: 'User' }], required: true, unique: true }, Не пашет. пишу так: users: { type: [{ ref: 'User', required: true, unique: true }], }, не пашет. Поймал грустинку( поможет кто?
N
Сорян, увлекся. users: { type: [{ type: mongoose.Types.ObjectId, ref: 'User' }], required: true, unique: true }, тоже не работает((((
Dima
Всем привет. Являюсь новичком этой сфере. Тыкните носом пожалуйста, что делать. Есть документ. В нём есть ссылка (ObjectID) на другой документ. Что нужно сделать, чтобы БД на лету заменила ссылку на соответствующий ей документ?
Dima
спасибо
N
Если знаете что два юзера, то сразу делайте по филду на каждого
ой, 1000 извинений...проблему уже решил)) но все равно спасибо
N
оооо,а это интересно. Обязательно упорядочивать? он не видит сходства в [1,2] и [2,1]?
N
может есть ключ какой чтобы сравнивал значения только, без учета позиции в списке
Google
Всем привет можете помочь есть способ в mongodb update скажем сразу обновить несколько документ в один запрос ( у меня такой массив )
Google
🆘🆘🆘
Google
https://docs.mongodb.com/manual/reference/method/db.collection.update/
Спасибо но тут не могу найти то что мне надо ?
Anatoly
Спасибо но тут не могу найти то что мне надо ?
db.collection.update({}, { allow: true }, {multi: true}) вот это обновит во всех документах allow на true
Google
Но у меня обновление происходит по ID
Google
Как сделать через id ??
Anatoly
Но у меня обновление происходит по ID
db.collection.update({userUID: 'твой Id'}, { allow: true }, {multi: true})
Google
Ну это обновляет одну у меня id приходит как массив
Anatoly
Ну это обновляет одну у меня id приходит как массив
userUID: { $in: ['1id', '2id', '3id'], }
Google
userUID: { $in: ['1id', '2id', '3id'], }
Но ещё могу передать subject array и поменять ? Или не возможно
Google
Такой массив у меня
Anatoly
Но ещё могу передать subject array и поменять ? Или не возможно
Что хочешь можешь менять, первый параметр это объект квери по которому происходит поиск документов которые надо обновить, второй параметр это то что надо обновить 3ий опции
Google
Спасибо большое попробую и от пишу результат
Vladimir
это заменит документ на {allow: true}
Viktar
но нет же
Посмотрите $push и $set
Dmytro
Всем привет Подскажите пжлст по монге (юзаю mongoose) Есть структура аля user.transactions. transactions это массив: [Transaction.schema] Как я могу получить транзакцию по userId + txId? Аля User.find({ transactions: { _id: id }}, только вернуть не юзера, а транзакцию
Dmytro
projection применить
Спасибо, попробую
Eugen
Всем привет, ребят , если я добавил еще одно поле в схему mongoose с default : true, то тогда я должен все документы в базе сделать updateMany и вставить это поле ?
Eugen
или можно как-то автоматизировать ?