Mongodb Mongo DB更新查询抛出错误

Mongodb Mongo DB更新查询抛出错误,mongodb,Mongodb,我一直在尝试使用更新查询更新一个字段,但它抛出了错误,请帮助 Query: db.dumpbasiccompany.update( db.dumpbasiccompany.aggregate([{ $lookup: { from: "basiccompany", localField: "CompanyName", foreignField: "CompanyName", as: "inventory_docs"}},{ $project : {"_id":1 } } ]),

我一直在尝试使用更新查询更新一个字段,但它抛出了错误,请帮助

Query:
    db.dumpbasiccompany.update(
    db.dumpbasiccompany.aggregate([{ $lookup: { from: "basiccompany", localField: "CompanyName",  foreignField: "CompanyName", as: "inventory_docs"}},{ $project : {"_id":1 } } ]),
    { $set:{ flag: 1 } }) 

    Error:
    WriteResult({
            "nMatched" : 0,
            "nUpserted" : 0,
            "nModified" : 0,
            "writeError" : {
                    "code" : 2,
                    "errmsg" : "cannot compare to undefined"
            }
    })

我是mongo db的新人,所以对此我不确定,请验证我的查询。

您可以使用如下代码:

db.basiccompany.find().forEach(
    function(doc) {
        var check = false;
        data = db.dumpbasiccompany.find({
            CompanyName: doc.CompanyName
        }).forEach(function(mydoc) {
            if (mydoc != null) {
                check = true;
            }
        })
        if (check == true) {
            db.basiccompany.update({
                _id: doc._id
            }, {
                $set: {
                    flag: 1
                }
            });
        }
    });

这是错误的更新方式。你需要什么才能达到预期的结果。。注:将样本文档提供给您。还有一些解释。您好,Sathish,我的要求是比较两个集合,如果出现相同的记录,我需要更新标志值。就像您需要找到collection1并检查update collection2一样。然后您的需求匹配意味着,天气更新集合1或集合2。感谢您的努力,我有两个集合dumpbasiccompany和basiccompany,我需要检查CompanyName列,如果CompanyName相同,则将flag=1更新到basiccompany集合。“希望你能给我提供解决方案。”安东尼。这也是基于您的要求。你需要检查一下。它很好用,谢谢……你帮了大忙。