Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何根据MongoDB中的另一个集合嵌入字段值更新嵌入集合字段的数组?_Arrays_Mongodb_Embedded Documents - Fatal编程技术网

Arrays 如何根据MongoDB中的另一个集合嵌入字段值更新嵌入集合字段的数组?

Arrays 如何根据MongoDB中的另一个集合嵌入字段值更新嵌入集合字段的数组?,arrays,mongodb,embedded-documents,Arrays,Mongodb,Embedded Documents,我已经在这个论坛上搜索了我下面的问题,我无法找到解决方案 存货集中: } 新收集的库存: } 现在,我必须使用inventory\u new collections embedded item“qty”字段值更新inventory collection embedded array的item“qty”。。我试过下面的代码。。但我没有成功。请给我一些建议 db.inventory.find().forEach(function (doc1) { var doc2 = db.inventory_c

我已经在这个论坛上搜索了我下面的问题,我无法找到解决方案

存货集中: }

新收集的库存:


}

现在,我必须使用inventory\u new collections embedded item“qty”字段值更新inventory collection embedded array的item“qty”。。我试过下面的代码。。但我没有成功。请给我一些建议

db.inventory.find().forEach(function (doc1) {
var doc2 = db.inventory_copy.find({ Billno: doc1.Billno},{ Device_id: doc1.Device_id},{ item.item_id: doc1.item.item_id}, {item.qty: 1 });
if (doc2 != null) {
    doc1.item.qty = doc2.item.qty;
    db.inventory.save(doc1);
}
}))


谢谢

请尝试以下更新:

db.inventory.find().forEach(function (doc1) {
    var doc2 = db.inventory_copy.findOne(
        { 
            "Billno": doc1.Billno, 
            "Device_id": doc1.Device_id,
            "item.item_id": doc1.item.item_id
        }
    );
    if (doc2 != null) { 
        doc1.item = doc2.item;    
        db.inventory.save(doc1);
    }
});

嗨,我必须检查find()中嵌入文档的字段,比如var doc2=db.inventory\u copy.find({Billno:doc1.Billno},{Device\u id:doc1.Device\u id},{item.item\u id:doc1.item.item\u id},{item.qty:1});如果(doc2!=null){@Root我已经添加了额外的细节。嗨,我得到了错误:未捕获的异常:错误:{“$err”:“无法规范化查询:BadValue无法与未定义的进行比较”,“代码”:17287}嗨,有人知道吗?
db.inventory.find().forEach(function (doc1) {
var doc2 = db.inventory_copy.find({ Billno: doc1.Billno},{ Device_id: doc1.Device_id},{ item.item_id: doc1.item.item_id}, {item.qty: 1 });
if (doc2 != null) {
    doc1.item.qty = doc2.item.qty;
    db.inventory.save(doc1);
}
db.inventory.find().forEach(function (doc1) {
    var doc2 = db.inventory_copy.findOne(
        { 
            "Billno": doc1.Billno, 
            "Device_id": doc1.Device_id,
            "item.item_id": doc1.item.item_id
        }
    );
    if (doc2 != null) { 
        doc1.item = doc2.item;    
        db.inventory.save(doc1);
    }
});