2017-04-07 80 views
-1

我一直在嘗試更新使用更新查詢的一個字段,但它有拋出錯誤,請幫助。MongoDB更新查詢拋出錯誤

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的新成員,所以我不確定這個,請確認我的查詢。

+1

這是錯誤的方式來更新。並且你需要預期的結果.. 注意:給你提供樣品文件。還有一些解釋。 –

+0

嗨Sathish,我的要求是比較兩個集合,如果相同的記錄來了,我需要更新標誌值。 – Antony

+0

像你需要找到collection1,你檢查更新collection2。然後,您的需求匹配意味着,天氣更新collection1或collection2。 –

回答

1

您可以使用這樣的代碼:

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 
       } 
      }); 
     } 
    }); 
+0

@Antony。這也是基於你的要求。你需要檢查這個。 –

+0

它工作正常,謝謝...你一直很有幫助。 – Antony