Запитання з тегом «aggregation-framework»

Структура агрегування MongoDB забезпечує засіб переформування та агрегування даних у MongoDB 2.2+.

14
Отримайте лише запитуваний елемент у масиві об'єктів у колекції MongoDB
Припустимо, у моїй колекції є такі документи: { "_id":ObjectId("562e7c594c12942f08fe4192"), "shapes":[ { "shape":"square", "color":"blue" }, { "shape":"circle", "color":"red" } ] }, { "_id":ObjectId("562e7c594c12942f08fe4193"), "shapes":[ { "shape":"square", "color":"black" }, { "shape":"circle", "color":"green" } ] } Зробіть запит: db.test.find({"shapes.color": "red"}, {"shapes.color": 1}) Або db.test.find({shapes: {"$elemMatch": {color: "red"}}}, {"shapes.color": 1}) Повертає збіглий документ (документ …

9
Оновіть поле MongoDB, використовуючи значення іншого поля
Чи можливо в MongoDB оновити значення поля, використовуючи значення з іншого поля? Еквівалентний SQL був би на кшталт: UPDATE Person SET Name = FirstName + ' ' + LastName І псевдокодом MongoDB було б: db.person.update( {}, { $set : { name : firstName + ' ' + lastName } );

21
Отримайте назви всіх ключів у колекції
Я хотів би отримати назви всіх ключів у колекції MongoDB. Наприклад, з цього: db.things.insert( { type : ['dog', 'cat'] } ); db.things.insert( { egg : ['cat'] } ); db.things.insert( { type : [] } ); db.things.insert( { hello : [] } ); Я хотів би отримати унікальні ключі: type, egg, …


7
MongoDB ВИБІРУЙТЕ ГРУПУ КОМАНТУ
Я граю з MongoDB, намагаючись зрозуміти, як зробити просте SELECT province, COUNT(*) FROM contest GROUP BY province Але я, здається, не можу це зрозуміти за допомогою функції сукупності. Я можу це зробити за допомогою справді дивного групового синтаксису db.user.group({ "key": { "province": true }, "initial": { "count": 0 }, "reduce": …

6
Включіть усі існуючі поля та додайте нові документи до документа
Я хотів би визначити етап агрегації $ проекту, де я можу доручити йому додати нове поле та включити всі існуючі поля, не перераховуючи всі існуючі поля. Мій документ виглядає приблизно так, з багатьма полями: { obj: { obj_field1: "hi", obj_field2: "hi2" }, field1: "a", field2: "b", ... field26: "z" } …

3
Mongodb Поясніть рамки агрегації
Чи є в MongoDB функція пояснення для Агрегативної рамки? Я не бачу цього в документації. Якщо ні, чи є інший спосіб перевірити, як виконується запит у рамках агрегації? Я знаю, що знаходжу тебе просто db.collection.find().explain() Але в рамках агрегації я отримую помилку db.collection.aggregate( { $project : { "Tags._id" : 1 …



5
mongodb підраховує кількість різних значень на поле / ключ
Чи є запит для обчислення кількості різних значень, яке містить поле в БД. fe У мене є поле для країни і є 8 типів значень країни (Іспанія, Англія, Франція тощо) Якщо хтось додасть більше документів у новій країні, я хотів би, щоб запит повернувся 9. Чи є простіший спосіб, ніж …

6
Що таке оператор $ unind у MongoDB?
Це мій перший день з MongoDB, тому будь ласка, будь ласка зі мною :) Я не можу зрозуміти $unwindоператора, можливо, тому що англійська мова не є моєю рідною мовою. db.article.aggregate( { $project : { author : 1 , title : 1 , tags : 1 }}, { $unwind : "$tags" …

6
$ lookup на ObjectId в масиві
Який синтаксис для пошуку $ в полі, яке є масивом ObjectIds, а не просто одним ObjectId? Приклад документа замовлення: { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ] } Неробочий запит: db.orders.aggregate([ { $lookup: { from: "products", localField: "products", foreignField: "_id", as: "productObjects" } } ]) Бажаний результат { …



2
Повертає лише відповідні елементи піддокументу у вкладеному масиві
Основна колекція - це роздрібний торговець, який містить масив для магазинів. Кожен магазин містить безліч пропозицій (ви можете придбати в цьому магазині). Цей масив пропозицій має масив розмірів. (Див. Приклад нижче) Зараз я намагаюся знайти всі пропозиції, які доступні за розміром L. { "_id" : ObjectId("56f277b1279871c20b8b4567"), "stores" : [ { …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.