如何在第二个集合中找到相应的记录?

时间:2016-03-11 07:42:40

标签: node.js mongodb

收藏A格式:

{_id:'123123435', order_id:'128390183', number:10}

收集B格式:

{_id:'1979798', 'order_id':'128390183', remind_number:5}

如果我知道B的一个文档,例如b_doc,现在我可以获得相应的B.document

mongo(javascript语法):

a_doc = db.A.findOne({order_id: b_doc.order_id})

但是现在,我遇到了一个棘手的问题:我想编写一个可以获得以下效果的查询命令:

db.A.find({remind_numer:{$gt: corresponding.b_doc.number} })

1 个答案:

答案 0 :(得分:1)

以下可以是aggregation的一个解决方案,通过orderA加入orderB$lookup以及相同的order_id,并将相关的orderB文档放入{{ 1}}字段。然后通过order解构此数组字段order,比较$unwind阶段中的remind_numbernumber。然后通过大于$project $match的{​​{1}}过滤上面的比较结果。

remind_number