Мне нужно заполнить некоторый массив индексов - PullRequest
0 голосов
/ 12 ноября 2018

Мне нужно заполнить определенный индекс строки в mongodb.

Вот моя коллекция

{

     "startTime": "00:00",
     "endTime": "23:30",
     "services": [
                ObjectId("5b90e29729d36e0014d2f6f2"),
                ObjectId("5b8f96003b918f0014bb4b92"),
                ObjectId("5b8f6273621c0f02a9ae30b9"),
                ObjectId("5b90e33329d36e0014d2f6ff"),
                ObjectId("5b8e6fd47365a5001413062e"),
                ObjectId("5b8fb97b06d94a00143a11e7"),
                ObjectId("5ba88de21aabd703443a411e"),
                ObjectId("5b98e50ed6c3f80014d3c2cf"),
                ObjectId("5b8e853f7365a500141308c1"),
                ObjectId("5b9b7832d9f1070014352893"),
                ObjectId("5bb1d6bf35c2de001301c99c")
            ],
         "isActive": true,
        "isDeleted": false,
}

Мне просто нужно заполнить эти идентификаторы службы ObjectId ("5b90e29729d36e0014d2f6f2"), ObjectId ("5b8f96003b918f0014bb4b92").

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете использовать $lookup агрегацию в mongodb 3.6

var ids = [ObjectId("5b90e29729d36e0014d2f6f2"), ObjectId("5b8f96003b918f0014bb4b92")]

db.collection.aggregate([
  { "$lookup": {
    "from": "services",
    "pipeline": [{ "$match": { "$expr": { "$in": ["$_id", ids ]}}}],
    "as": "services"
  }}
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...