не ожидаемый вывод с использованием $ lookup в mongoose для выполнения связанного запроса - PullRequest
0 голосов
/ 23 июня 2018

GardenModel, как следует

    { display: true,
      itemList:
       [ { type: 1, count: 100 },
         { type: 2, count: 99 },
         { type: 3, count: 50 } ],
      _id: 5b2e0da2efa97927b06927ec,
}

UserModel следующим образом

{ _id: 5b2e0da2efa97927b06927ed,
  nick: 'hehe',
  gender: 1,
  lastLogin: 2018-06-23T09:06:42.745Z,
  garden: 5b2e0da2efa97927b06927ec,
}

связанный запрос следующим образом:

async function test2(){
    let docs = await UserModel.aggregate([
        {
            $lookup:{
                from:"GardenModel",
                localField:"garden",
                foreignField:"_id",
                as:"gardenInfo"
            }
        }
    ]);
    console.log(docs[0]);
}

но его вывод неожидан из-за пустого значения gardenInfo

{ _id: 5b2e0da2efa97927b06927ed,
  nick: 'hehe',
  gender: 1,
  lastLogin: 2018-06-23T09:06:42.745Z,
  garden: 5b2e0da2efa97927b06927ec,
  gardenInfo: [] }

Выход ожидается, когда я делаю работу в Robo 3T.

db.getCollection('usermodels').aggregate([
{
    $lookup:{
                from:"gardenmodels",
                localField:"garden",
                foreignField:"_id",
                as:"gardenInfo"
        }
    }
])

ожидаемый результат следующий, И это правильно.

    {
    "_id" : ObjectId("5b2e52154c73cb22fc77b92c"),
    "nick" : "test",
    "gender" : 1,
    "lastLogin" : ISODate("2018-06-23T13:58:45.028Z"),
    "garden" : ObjectId("5b2e52144c73cb22fc77b92b"),
    "__v" : 0,
    "gardenInfo" : [ 
        {
            "_id" : ObjectId("5b2e52144c73cb22fc77b92b"),
            "display" : true,
            "itemList" : [ 
                {
                    "type" : 1,
                    "count" : 200
                }, 
                {
                    "type" : 2,
                    "count" : 99
                }, 
                {
                    "type" : 3,
                    "count" : 90
                }
            ],
            "__v" : 0
        }
    ]
}

Я не могу понять, почему операция поиска не может хорошо работать в мангусте, но хорошо работает в robo 3T.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...