$ lookup с несколькими коллекциями - PullRequest
0 голосов
/ 14 декабря 2018

У меня 4 коллекции, как здесь: пользователи , рабочие листы , проекты , счета .

Я хочучтобы получить данные из коллекции рабочих листов и данные в коллекции рабочих таблиц, как показано ниже:

/ 1 /
{    "_id" : ObjectId("5c0bb867135ec3a669f52e04"),
    "isActive" : true,
    "projectId" : ObjectId("5bff9d5549a40e64a5f57040"),
    "hours" : 8,
    "billingId" : ObjectId("5bff995f3bf7ebd47f78cc7c"),
    "taskDetails" : "Work on schedule page.\nWork on add schedule page.",
    "userId" : ObjectId("5be6cbf8b844bb8e48a5839f")
}
/ 2 /
{    "_id" : ObjectId("5c0def8c737bad2e6064fec6"),
    "isActive" : true,
    "projectId" : ObjectId("5bff9d5549a40e64a5f57040"),
    "hours" : 6,
    "taskDetails" : "Attendance Page\nProject Page",
    "userId" : ObjectId("5be6cbf8b844bb8e48a5839f")
}
/ 3 /
{    "_id" : ObjectId("5c0def8c737bad2e6064fec7"),
    "isActive" : false,
    "projectId" : ObjectId("5bff9ca949a40e64a5f5703f"),
    "hours" : 2,
    "taskDetails" : "Review and test site.",
    "userId" : ObjectId("5be6cbf8b844bb8e48a5839f")
}
/ 4 /
{    "_id" : ObjectId("5c138cedafa36016041aa5a2"),
    "isActive" : true,
    "projectId" : ObjectId("5bff9ca949a40e64a5f5703f"),
    "hours" : 3,
    "taskDetails" : "this is task description",
    "userId" : ObjectId("5be6cbf8b844bb8e48a5839f")
}
/ 5 /
{    "_id" : ObjectId("5c138cedafa36016041aa5a3"),
    "isActive" : false,
    "projectId" : ObjectId("5bff9d5549a40e64a5f57040"),
    "hours" : 5,
    "billingId" : ObjectId("5bff995f3bf7ebd47f78cc7c"),
    "taskDetails" : "LN PM project",
    "userId" : ObjectId("5be6cbf8b844bb8e48a5839f")
}

И я хочу получить результат в следующем формате:

[
 {
   _id : "as worksheet id",
   userId : "userId",
   userName : "populate userId and get user name",
   projects : [
     {
       projectId : "as projectId"
       projectName : "populate projectId and get projectName",
       hours : "as per projectid from worksheet collection",
       isActive : "as per projectid from worksheet collection",
       billingId : "populate billingId and get data"
     },
     {
       projectId : "as projectId"
       projectName : "populate projectId and get projectName",
       hours : "as per projectid from worksheet collection",
       isActive : "as per projectid from worksheet collection",
       billingId : "populate billingId and get data"
     },
   ]
 }
]

Итак, в основном, я хочу получить рабочий листпользователь, который содержит все проекты этого пользователя и содержит часы и некоторые другие поля из коллекции рабочих таблиц, как я упоминал в коде выше.

...