在mongoDB中的嵌套记录中查找(由引用ObjectId嵌套)

时间:2016-12-19 19:39:16

标签: node.js mongodb mongoose nested

我有两个记录,订单和用户,我的订单有一个用户的对象ID,这是我的记录:

订单:

{
  "_id" : ObjectId("56ea382b3c21a4a74591dc99"),
  "user" : ObjectId("56ea382b3c21a4a74591dc98"),
  "created" : 1458190379858
}

和用户:

{
  "_id" : ObjectId("56febb7b4597977168894445"),
  "phone" : "09197377057",
  "created" : 1459170746688,
}

如何找到用户手机的订单,例如“09197377057”

mongodb或mongoose有可能找到这样的东西吗?

1 个答案:

答案 0 :(得分:2)

如果您想要在单个查询中,

$lookup 就是您所需要的。

db.order.aggregate({
    $lookup: {
        from: "user",
        localField: "user",
        foreignField: "_id",
        as: "order_user"
    }
}, {
    $match: {
        "order_user.phone": "09197377057"
    }
});