$ lookup使用整数类型字段?

时间:2018-05-13 17:28:22

标签: node.js mongodb

我有一个mongodb文件

{
  "_id": 10001,
  "uid": 1413430,
  "loginType": "student"
}

_id是bookId。本书ID是包含isbn编号的" books" 集合中的主键。 "图书" 中的isbn编号是" bookDetails" 集合中的主键。我想使用join(在mongodb中聚合)从上面的文档中获取bookName和author。 "图书" " bookDetails" 集合如下:

"书籍"

 {
   "_id": 10001,
   "issued": true,
   "isbn": 1177009,
   "issuedIds": []
 }

" bookDetails"

{
  "_id": 1177009,
  "quantity": 5,
  "available": 5,
  "tags": [
           "cse",
           "ece",
           "me",
           "ce",
           "ee",
           "sems 1"
          ],
  "bookIds": [
              10001,
              10002,
              10003,
              10004,
              10005
             ],
  "bookName": "book 1",
  "author": "author 1"
}

我正在使用nodejs和mongodb。

1 个答案:

答案 0 :(得分:0)

谢谢大家。 我得到了答案。如果出现问题,请告诉我,因为我得到了所需的输出。

database
  .collection('issueCart')
  .aggregate([
              {
                $match: {uid: parseInt(id)}
              },
              {
                $lookup: {
                           from: "bookDetails",
                           localField: "_id",
                           foreignField: "bookIds",
                           as: "book"
                         },
              },
              {
                $unwind: "$book"
              },
              {
                $replaceRoot: {
                         newRoot: {
                             $mergeObjects: ["$book", "$$ROOT"]
                         }
                   }
               },
               {
                 $project: {"bookId": "$_id", author: "$author", name: "$bookName", _id: 0}
               }
             ])