Запрос, чтобы получить все _id в массиве в mongdb?

У меня есть следующая коллекция

{
    "_id" : ObjectId("5acdb95d5ea63a27c1facf92"),
    "venue" : ObjectId("5acdb95d5ea63a27c1facf8c"),
    "author" : ObjectId("5ac8ba3582c2345af70d4658"),
}
{
    "_id" : ObjectId("5acdb95d5ea63a27c1facf93"),
    "venue" : ObjectId("5acdb95d5ea63a27c1facf8c"),
    "author" : ObjectId("5ac8ba3582c2345af70d4658"),
}
{
    "_id" : ObjectId("5acdb95d5ea63a27c1facf91"),
    "venue" : ObjectId("5acdb95d5ea63a27c1facf8c"),
    "author" : ObjectId("5ac8ba3582c2345af70d4658"),
}

как получить все _id в массиве с одинаковым местом встречи

Мой результат должен быть таким

{array: ['5acdb95d5ea63a27c1facf91', '5acdb95d5ea63a27c1facf91', '5acdb95d5ea63a27c1facf93']}

Вы хотите для конкретного места проведения или сгруппированы по месту проведения?

XCS 11.04.2018 13:40

@Cristy для конкретного места

Ashh 11.04.2018 13:40

взгляните на этот агрегация: $ push

felix 11.04.2018 13:49

@felix ты классный

Ashh 11.04.2018 13:56
0
4
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте этот запрос:

db.colelction.aggregate([
  {$match:{"venue" : ObjectId("5acdb95d5ea63a27c1facf8c")}},
  {$group:{_id:null, array:{$push:"$_id"}}},
  {$project:{_id:0}}
])

И вывод:

/* 1 */
{
   "array" : [ 
       ObjectId("5acdb95d5ea63a27c1facf92"), 
       ObjectId("5acdb95d5ea63a27c1facf93"), 
       ObjectId("5acdb95d5ea63a27c1facf91")
   ]
}

привет есть ли площадка для запроса mongodb?

Ashh 11.04.2018 14:27

@AshishChoudhary, какой был твой вопрос?

Rahul Raj 11.04.2018 14:33

мой выше прокомментированный вопрос помимо вопроса SOF

Ashh 11.04.2018 14:35

Я так понимаю, что имеется в виду под playground? Вы имеете в виду сторонний инструмент, кроме оболочки mongo?

Rahul Raj 11.04.2018 14:36

точно так же, как jsfiddle

Ashh 11.04.2018 14:37

@AshishChoudhary, вы можете взглянуть на монгоплощадка! (раскрытие: я автор)

felix 11.04.2018 14:40

@felix awesome поделитесь, чувак :) Как тестировать коллекции со встроенными в них документами?

Rahul Raj 11.04.2018 14:42

@RahulRaj обязательно использует режим json и определяет пользовательские документы json, например mongoplayground.net/p/7uQ7goYnuQX

felix 11.04.2018 14:48

@felix, пожалуйста, ответьте stackoverflow.com/questions/49705054/…

Ashh 11.04.2018 19:37
db.collection.aggregate(

  // Pipeline
  [
    // Stage 1
    {
      $group: {
         _id:{venue:'$venue'},
         _ids:{$addToSet:'$_id'}
      }
    },

    // Stage 2
    {
      $project: {
      _ids:1,
      _id:0
      }
    }

  ]


);

Хотя этот блок кода может ответить на вопрос, было бы лучше, если бы вы могли дать небольшое объяснение того, почему он это делает.

Gert Arnold 15.04.2018 21:40

Другие вопросы по теме