몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

MongoDB 업데이트 문서


MongoDB는 update()save() 메소드를 사용하여 컬렉션의 문서를 업데이트합니다. 다음으로 두 기능의 활용 및 차이점을 자세히 살펴보겠습니다.


update() 메소드

update() 메소드는 기존 문서를 업데이트하는 데 사용됩니다. 구문 형식은 다음과 같습니다:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

매개변수 설명:

  • query : 쿼리 조건 업데이트, sql과 유사 어디 뒤에 쿼리를 업데이트합니다.

  • 업데이트 : 업데이트 개체 및 일부 업데이트 연산자(예: $, $inc...) 등도 SQL 업데이트 내에서 설정된 것으로 이해될 수 있습니다. query 다음

  • upsert : 선택 사항입니다. 이 매개 변수는 업데이트 기록이 없는 경우 objNew를 삽입할지 여부를 의미하고, true는 삽입을 의미하며, 기본값은 false입니다. 삽입됨.

  • multi : 선택사항, mongodb의 기본값은 false이며, 이 매개변수가 true이면 여러 조건이 검색됩니다. 업데이트되었습니다.

  • writeConcern : 선택 사항, 예외가 발생하는 수준입니다.

Instance

컬렉션 열에 다음 데이터를 삽입합니다:

>db.col.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'php中文网',
    url: 'http://www.php.cn',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

그런 다음 update() 메서드를 통해 제목(제목)을 업데이트합니다. :

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php中文网",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

제목이 "MongoDB Tutorial"에서 "MongoDB"로 변경된 것을 확인할 수 있습니다.

위 명령문은 처음 발견된 문서만 수정합니다. 여러 개의 동일한 문서를 수정하려면 multi 매개변수를 true로 설정해야 합니다.

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

save() 메서드

save() 메서드는 기존 문서를 들어오는 문서로 바꿉니다. 구문 형식은 다음과 같습니다:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

매개변수 설명:

  • document : 문서 데이터.

  • writeConcern : 선택 사항, 예외가 발생하는 수준입니다.

인스턴스

다음 예에서는 문서 데이터를 _id 56064f89ade2f21f36b03136으로 바꾸었습니다.

>db.col.save({
	"_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "php",
    "url" : "http://www.php.cn",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

교체가 성공한 후 find를 사용할 수 있습니다. () 대체된 데이터를 보는 명령

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "php",
        "url" : "http://www.php.cn",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
>

추가 인스턴스

첫 번째 레코드만 업데이트:

db.col.update( { " count " : { $gt : 1 } } , { $set : { "test2" : "OK"} } );

모두 업데이트:

db.col .update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );

첫 번째 Bar만 추가 :

db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 🎜>
모두 추가하세요:

db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : " OK"} },true,true );
모든 업데이트:

db.col.update( { "count" : { $gt : 15 } } , { $inc : { "개수" : 1} },false,true );

첫 번째 레코드만 업데이트:

db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} } , 거짓,거짓 );