将两个集合与条件

时间:2017-06-03 06:59:18

标签: mongodb aggregation-framework

我有一个"产品"与这些文件:

{"_id" : 142347106,"name" : "product 1"}
{"_id" : 135377126,"name" : "product 2"}

我还有另一个系列"价格" :

{
    "_id" : ObjectId("59310a6bad6e99863c2a6860"),
    "region" : 1111,
    "price" : 7.6,
    "id_start" : 174683814,
    "id_end" : 174686813,
    "qte" : 3000
}

产品的价格可以在产品的_id中找到,该产品介于" id_start"和" id_end"。 因此,如果我想获得所有产品的价格,我可以进行以下查询:

db.getCollection("product").find({}).forEach( function(myProduct) {
     db.getCollection("price").findOne({$and: [ { "id_start":{$lt: parseInt(myProduct._id) } }, {"id_end":{$gt: parseInt(myProduct._id)}}]})
});

这是有效的,但我的问题是我有很多文件,当我运行查询时,它始终以" errmsg" :"找不到光标,光标id:...

所以我想通过使用聚合框架来查找另一种查询方式。

你有什么想法吗?

我可以将两个系列合二为一,但我并不喜欢这样: - /

非常感谢!

0 个答案:

没有答案