【问题标题】:mongoose query version of this这个的猫鼬查询版本
【发布时间】:2015-03-28 23:58:52
【问题描述】:

我在 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
        }
    });
})

提前致谢。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    我应该在发帖之前做更多的研究。这个链接帮助我用 mongoclient 完成我想要的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 2020-06-02
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 2018-02-05
      相关资源
      最近更新 更多