MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBの検索条件で最後の行を更新しますか?


検索条件で更新するには、MongoDBでfindAndModify()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889fdb987b6e0e9d18f591")
}
> db.demo516.insertOne({"Name":"John","Age":23,"Score":67});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ff1987b6e0e9d18f592")
}
> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ff3987b6e0e9d18f593")
}
> db.demo516.insertOne({"Name":"John","Age":22,"Score":66});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ffa987b6e0e9d18f594")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo516.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e889fdb987b6e0e9d18f591"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ff1987b6e0e9d18f592"), "Name" : "John", "Age" : 23, "Score" : 67 }
{ "_id" : ObjectId("5e889ff3987b6e0e9d18f593"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ffa987b6e0e9d18f594"), "Name" : "John", "Age" : 22, "Score" : 66 }

以下は、MongoDBの検索条件で最後の行を更新するためのクエリです-

> db.demo516.findAndModify({
... query: {Name: "John", Age: 22},
... sort: {_id: -1},
... update: {$set: {Score: 98}},
... new: true
... })
{
   "_id" : ObjectId("5e889ffa987b6e0e9d18f594"),
   "Name" : "John",
   "Age" : 22,
   "Score" : 98
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo516.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e889fdb987b6e0e9d18f591"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ff1987b6e0e9d18f592"), "Name" : "John", "Age" : 23, "Score" : 67 }
{ "_id" : ObjectId("5e889ff3987b6e0e9d18f593"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ffa987b6e0e9d18f594"), "Name" : "John", "Age" : 22, "Score" : 98 }

  1. MongoDBの特定の文字列でフィールドのすべての値を更新しますか?

    すべての値を更新するには、update()をmulti:trueとともに使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo720.insertOne({"SubjectName":"MySQL"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eaae7ca43417811278f5883") } > db.demo720.insertOn

  2. 単一のMySQLクエリでIDが最も高い行を更新できますか?

    はい、できます。まずテーブルを作成しましょう- mysql> create table DemoTable    (    ID int,    GameScore int    ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(15,848747); Query OK, 1 row affected (0.12 sec) mysql