Mike
(на чистой монге без орм и пр)
Mike
и на ноде
Dmitry
и на ноде
Ноду нельзя?
Mike
Ноду нельзя?
не понял вопроса
Mike
перефразируйте если можно
Dmitry
перефразируйте если можно
Можно использовать только shell или можно ешё node.js?
Mike
Можно использовать только shell или можно ешё node.js?
ну нода у меня поставлена по факту уже
Mike
использовать ее конечно можно
Dmitry
ну нода у меня поставлена по факту уже
Через цикл сгенерируй массив промисов, положи его в класс промис и запроси ответ с ожиданием.
Mike
Через цикл сгенерируй массив промисов, положи его в класс промис и запроси ответ с ожиданием.
databases.forEach(e => collections.push(client.db(e.name).collections() .then((e) => ( {[e[0].s.namespace.db.toLowerCase()]: e.map((m) => m.s.namespace.collection........ через какое то такое апи вытащить данные не получиться?
Mike
(только имена коллекций и баз можно достать таким образом или и значения ихние тоже можно вытащить?)
Mike
код можите скинуть текстом?
Dmitry
const promises = [] const databases = (await client.db().admin().listDatabases()).databases databases.forEach((e) => promises.push(client.db(e.name).collection('name').findOne({title: '...'}))) const data = (await Promise.all(promises)).filter(f => f)
Mike
const promises = [] const databases = (await client.db().admin().listDatabases()).databases databases.forEach((e) => promises.push(client.db(e.name).collection('name').findOne({title: '...'}))) const data = (await Promise.all(promises)).filter(f => f)
а как интерпретировать пример с findOne в данном случае? у меня же название ключа одинаковое будет (условно) а значения в каждой коллекции разное - в данном примере я же к ключу должен обращаться как я понимаю? .findOne({title: '...'} - а здесь еще и значение зачем то указано + в последних версиях монги скорее всего этот метод не рабочий - наверное find использовать необходимо?
Dmitry
find - это для поиска всех документов, которые удовлетворяют условию findOne - это поиск конкретного документа
Dmitry
Оно не валидно т.к. вы такой вопрос задали, что у вас данные будут динамические
Dmitry
И оно подразумевает, что у вас есть таблица сопоставлений и по i вы сможете генерировать нужные ключи и значения
Mike
Mike
вот название коллекции
Mike
динамическая часть это AUDCAD
Mike
approximateDatePercentageAccuracyResult: "88.18"
Mike
это св-во и значение которое мне необходимо вытащить
Mike
(само значение только нужно)
Mike
св-во во всех базах одинаковое название имеет
Mike
(значение разное само собой)
Mike
суть задачи просто повытаскивать все значения со всех баз и куда то положить
Mike
(но так что бы было понятно с какой коллекции значение взято)
Dmitry
Когда вы заходите в коллекцию, то там находятся документы. Вы эту часть не описываете в своём задание
Dmitry
Там один документ или множество или ещё что-то
Dmitry
Dmitry
Сразу два варианта и find и findOne
Mike
буду благодарен если текстовую версию выложите.
Dmitry
const temp = [] const promises = [] const databases = (await client.db().admin().listDatabases()).databases // #1 databases.forEach((e, i) => temp.push({ db: e.name, collection: `${e.name}-m1-test`, }) && promises.push(client.db(e.name).collection('name').find({ approximateDatePercentageAccuracyResult: { $exists: true } }).toArray())) // #2 databases.forEach((e, i) => temp.push({ db: e.name, collection: `${e.name}-m1-test`, }) && promises.push(client.db(e.name).collection('name').findOne({ approximateDatePercentageAccuracyResult: { $exists: true } }))) const data = await Promise.all(promises) const result = temp.map((e, i) => Object.assign(e, { docs: data[i] }))
Dmitry
пока что вроде как не валидное решение
И не надо писать console.log(await promises) т.к. ваш результат хранится в data, которая объявлена выше.
Mike
И не надо писать console.log(await promises) т.к. ваш результат хранится в data, которая объявлена выше.
я так понимаю результат должен быть в docs - но пока что его нет
Mike
Dmitry
А вы посмотрите на название коллекци
Dmitry
&& promises.push(client.db(e.name).collection(`${e.name}-m1-test`).find({ approximateDatePercentageAccuracyResult: { $exists: true } }).toArray()
Mike
А вы посмотрите на название коллекци
пока что все равно обьект в результате
Dmitry
Чувствую, что у вас есть вопрос, как из массива объектов, сделать массив строк. То вам надо после toArray вызвать then и про мапить массив
Дима
Подскажите, как отфильтровать массив объектов по checked, чтобы сначала были без checked, а потом с ?
Mark
Всем привет. Монга еще жива, с Россией проблем нет?
Mark
Данные не стерли?
Its
Получаю массив с объектами в контроллере, как объединить их с предыдущим массивом в mongoDB?
Nick
Данные не стерли?
Не стерли, но поддержки нет, напрямую сайт недоступен из РФ, думаю как и оплата. Но те что были облачные серваки доступны, новые вроде как испод впн тоже делаются нормально
Its
$push
Он мне в один массив другой запушит
Its
$addToSet мне подсказали
Richard
Привет. Подскажите, пожалуйста. Есть коллекция деревьев, у каждого дерева есть массив плодов (здесь дерево может иметь разные плоды). Плод ссылается на другую коллекцию (с детальным описанием плода) по айди и имеет такие поля: количество этого плода, собраны ли они и приоритет к сбору). Мне нужно выбрать дерево, у которого есть не собранный плод, у которого максимальный приоритет на сбор. Второй день бьюсь) ----- Структура Коллекция Плоды { // Инфо } Коллекция Деревья { плоды: [ { Айди Количество Приоритет Собраны ли } ] }
Dmitry
В смысле?
Покажите на примере Schema (Mongoose) либо пару документов, чтобы это внесло больше ясности т.к. сейчас задача по описанию, относится, что её надо решать SQL методами
Richard
Покажите на примере Schema (Mongoose) либо пару документов, чтобы это внесло больше ясности т.к. сейчас задача по описанию, относится, что её надо решать SQL методами
Коллекция Products [ { _id: 1, name: "Apple", color: "Red", power: 50 }, { _id: 2, name: "Pear", color: "Green", power: 70 } ] Коллекция Trees [ { _id: 1, name: "First tree", productivity: 70, products: [ { _id: 1,          amount: 4,          priority: 9,          collected: false }, { _id: 2,          amount: 6,          priority: 10,          collected: true } ] }, { _id: 2, name: "Second tree", productivity: 60, products: [ { _id: 1,          amount: 2,          priority: 2,          collected: true }, { _id: 2,          amount: 11,          priority: 1,          collected: false } ] } ]
Nick
Коллекция Products [ { _id: 1, name: "Apple", color: "Red", power: 50 }, { _id: 2, name: "Pear", color: "Green", power: 70 } ] Коллекция Trees [ { _id: 1, name: "First tree", productivity: 70, products: [ { _id: 1,          amount: 4,          priority: 9,          collected: false }, { _id: 2,          amount: 6,          priority: 10,          collected: true } ] }, { _id: 2, name: "Second tree", productivity: 60, products: [ { _id: 1,          amount: 2,          priority: 2,          collected: true }, { _id: 2,          amount: 11,          priority: 1,          collected: false } ] } ]
в такой структуре сделать сортировку по приоритету можно, но это будет медленно (либо через анвинд, либо через reduce над массивом). Если уже понятно что осноное это работа с атрибутами вложенных сущностей и их еще и меняться надо (флаги и количества), то выносите их в отдельную коллекцию, иначе замучаетесь
Richard
А как принято ссылки размещать на другие коллекции? Допустим отношение один ко многим. Можно сделать массив айди там где один, а можно сделать айди одного у многих, как корректнее будет?
Richard
Спасибо
Mars
Ребят а не блокируют российские айпи адреса а то у меня база в атласе
Inline ®
Привет, как удалить поле "exchanger"?
Maxmudjon
Привет, как удалить поле "exchanger"?
db.update({foo:”bar”,{$unset: {“exchanger”:””}}})
Inline ®
db.update({foo:”bar”,{$unset: {“exchanger”:””}}})
А что такое foo: "bar"?
Maxmudjon
А что такое foo: "bar"?
это я условно писал
Maxmudjon
А что такое foo: "bar"?
вам у вся коллекция удалит поле exchanger?
Taras Kosyi (ง•̀o•́)ง
подскажите, пж, кверю, чтобы получить колличество уникальных значений филда коллекции
Dmitry
db.update({foo:”bar”,{$unset: {“exchanger”:””}}})
От unset сам массив пропадет, для удаления элемента надо pull использовать
C
Кто может дать совет по реализации fuzzy search(монга развернута локально, не на атласе)? Вроде как с поиском по индексу нормально, но он не поддерживает частичное совпадение...