这个的猫鼬查询版本

mongoose query version of this

我在 mongodb 控制台中 运行 有以下代码来更新集合中的价格。我不确定如何用猫鼬实现这一点。我在猫鼬中尝试了类似的东西,但找不到变量 prodcache 和 prodvalues。

var prodCache = {};

var prodValues = db.workorders2.aggregate([{
    "$unwind": "$lines"
}, {
    "$group": {
        "_id": null,
        "products": {
            "$addToSet": "$lines.Product"
        }
    }
}]).toArray()

db.products.find({
    "value": {
        "$in": prodValues[0].products
    }
}).forEach(function(product) {
  prodCache[product.value] = product.techprice;
});

db.workorders2.find({
    "Status": "Closed",
    "lines.Status": "Closed"
}).forEach(function(order) {
    for (var i = 0; i < order.lines.length; i++) {
        if (order.lines[i].TechAction == "Installed" || order.lines[i].TechAction == "Support Hardware Installed" || order.lines[i].TechAction == "Relocated") {
            order.lines[i].techprice = prodCache[order.lines[i].Product];
        }else if (order.lines[i].TechAction == "Receiver Swap" || order.lines[i].TechAction == "Service Swap"){
            order.lines[i].techprice = 2;
        }
    }
    db.workorders2.update({
        "_id": order._id
    }, {
        "$set": {
            "lines": order.lines
        }
    });
})

提前致谢。

我应该在发布之前做更多的研究。 link 帮助我用 mongoclient 完成我想要的。

http://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html