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集合。“希望你能给我提供解决方案。”安东尼。这也是基于您的要求。你需要检查一下。它很好用,谢谢……你帮了大忙。