2014-01-24 127 views
19

如何更新如果存在,否則在javascript/node.js中插入新文檔? 我收到作爲函數字典的參數,如果字典包含_id應該更新,否則插入遠程服務器上(我有通過貓鼬與遠程服務器連接,我有我想要插入/更新的個人模式)。如何更新,如果存在,否則插入新文件?

回答

13

collection.updateupsert:true。另見here

+5

它將有更多的投票,如果它是與例 –

+5

常見問題得到共同的答案。具體問題得到具體答案。 – heinob

+1

常見答案仍然可以有具體的例子。 – aboveyou00

27

在貓鼬,你會使用Person.updateper the documentation。如果文檔尚不存在,爲了創建文檔,您需要在選項哈希中傳遞{ upsert : true },因爲它默認爲false

Person.update({ name : 'Ted' }, { name : 'Ted', age : 50 }, { upsert : true }, callback); 
3

[db.collection.replaceOne(filter, replacement, options)]upsert:true

例如從here

try { db.restaurant.replaceOne(
      { "name" : "Pizza Rat's Pizzaria" }, 
      { "_id": 4, "name" : "Pizza Rat's Pizzaria", "Borough" : "Manhattan", "violations" : 8 }, 
      { upsert: true }  
     ); 
    } 
catch (e){ print(e); } 
相關問題