MongoDBのドキュメントの更新
MongoDBは使用して アップデートを() と ()セーブ 文書のコレクションを更新する方法を。アプリケーションとの二つの機能の違いを詳しく見てみましょう。
update()メソッド
update()メソッドは、既存のドキュメントを更新するために使用されます。構文は次のとおりです。
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
パラメータ:
- クエリ :クエリの更新、SQLのUPDATEクエリ内の背に似ています。
- 更新 :更新オブジェクトと新しい演算子(例えば、$、$株式会社です...)などのいくつかは、SQL更新クエリの背後にあるセットとして理解することができます。
- アップサート :挿入された真objNewを挿入するかどうか、何のレコード更新がない場合は省略可能で、このパラメータは、意味、デフォルトはfalseで、挿入されていません。
- マルチ :このパラメータは条件がすべての更新をチェックするために多くのレコードを置くによると、真であればオプション、MongoDBのデフォルトでは、唯一見つかった最初のレコードを更新し、falseです。
- writeConcern :オプション、スローレベルの例外。
例
私たちは、COLに設定された次のデータを挿入します。
>db.col.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
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" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
>
私たちは、元の「MongoDBのチュートリアル」Updateからタイトル(タイトル)を見ることができる「MongoDBの。」
あなたが同じドキュメントを変更したい場合は、上記の文では唯一、最初に見つかったドキュメントを変更し、より多くの、あなたは真のマルチパラメータを設定する必要があります。
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
()メソッドを保存
入ってくる文書で既存のドキュメントを置き換えるために()メソッドを保存します。構文は次のとおりです。
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
パラメータ:
- ドキュメント :文書データ。
- writeConcern :オプション、スローレベルの例外。
例
我々はの56064f89ade2f21f36b03136として文書データ_idを交換する例を示します。
>db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
交換が成功した後、我々は()コマンドは、findを置き換えることで、データを表示するには、することができます
>db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
}
>
より多くの例
最初のレコードだけを更新します。
db.col.update({ "カウント":{$はGT:1}}、{$セット:{ "TEST2": "OK"}})。
すべてのアップデート:
db.col.update({ "カウント":{$はGT:3}、{$セット:{ "TEST2": "OK"}}、FALSE、TRUE);
最初の追加:
db.col.update({ "カウント":{$のGT:4}}、{$セット:{ "TEST5": "OK"}}、真、偽)。
すべてはそれに追加しました:
db.col.update({ "カウント":{$のGT:5}}、{$セット:{ "TEST5": "OK"}}、真、TRUE);
すべてのアップデート:
db.col.update({ "カウント":{$のGT:15}}、{$ INC:{ "カウント":1}}、FALSE、TRUE);
最初のレコードだけを更新します。
db.col.update({ "カウント":{$のGT:10}}、{$ INC:{ "カウント":1}}、偽、偽)。