복붙노트

[MONGODB] 새 문서에 삽입 그렇지 않으면이있는 경우 어떻게 업데이트?

MONGODB

새 문서에 삽입 그렇지 않으면이있는 경우 어떻게 업데이트?

자바 스크립트 / Node.js를 새로운 문서에 삽입 그렇지 않으면이있는 경우 어떻게 업데이트? 사전 _id가 업데이트해야합니다 포함되어있는 경우 나 다른 원격 서버에 삽입, 기능 사전에 매개 변수로 받고 있습니다 (I는 몽구스를 통해 원격 서버와의 연결이와 나는 / 업데이 트를 삽입 할 사람 스키마가).

해결법

  1. ==============================

    1.몽구스, 당신은 문서 당 Person.update를 사용하십시오. false로 같은 옵션 해시 기본값 : 이미 존재하지 않는 경우 문서를 만들려면 {사실 upsert} 통과해야합니다.

    몽구스, 당신은 문서 당 Person.update를 사용하십시오. false로 같은 옵션 해시 기본값 : 이미 존재하지 않는 경우 문서를 만들려면 {사실 upsert} 통과해야합니다.

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

    2.upsert와 collection.update : 사실. 여기 참조하십시오.

    upsert와 collection.update : 사실. 여기 참조하십시오.

  3. ==============================

    3.[db.collection.replaceOne (필터, 여분 옵션)]와 upsert : 참

    [db.collection.replaceOne (필터, 여분 옵션)]와 upsert : 참

    예를 들면 여기에서:

    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); }
    
  4. ==============================

    4.파이썬의 경우 :

    파이썬의 경우 :

    import pymongo
    
    client = pymongo.MongoClient("mongodb_address")
    db = client.db_name
    collection = db[collection_name]
    
    # update 'data' if 'name' exists otherwise insert new document
    collection.find_one_and_update({"name": some_name},
                                   {"$set": {"data": some_data}},
                                   upsert=True)
    
  5. from https://stackoverflow.com/questions/21342747/how-to-update-if-exists-otherwise-insert-new-document by cc-by-sa and MIT license