インデックスNの配列オブジェクトを更新するMongoDBクエリ?
MongoDBのupdate()を使用して、配列オブジェクトを更新します。ドット表記の使用も必要です。ドキュメントを使用してコレクションを作成しましょう-
> db.demo489.insertOne(
... {
...
...
... details : [{
... id : 101,
... "Info1" : {
... "StudentName" : "Chris"
... },
... "Info2" : {
... "TeacherName" : "David"
... }
... },
... {
... id : 102,
... "Info1" : {
... "StudentName" : "Carol"
... },
... "Info2" : {
... "TeacherName" : "Mike"
... }
... }
...
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8356e0b0f3fa88e22790ba")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo489.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8356e0b0f3fa88e22790ba"), "details" : [ { "id" : 101, "Info1" : {
"StudentName" : "Chris" }, "Info2" : { "TeacherName" : "David" } }, { "id" : 102, "Info1" : {
"StudentName" : "Carol" }, "Info2" : { "TeacherName" : "Mike" } } ] } 以下は、配列オブジェクトを更新するためのクエリです-
> db.demo489.update({"details.id":102},
... {$set: {"details.$.Info1.StudentName":"Robert",
... "details.$.Info2.TeacherName":"John",
... "details.$.CountryName" : "US"
...
... }
... })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo489.find().pretty();
これにより、次の出力が生成されます-
{
"_id" : ObjectId("5e8356e0b0f3fa88e22790ba"),
"details" : [
{
"id" : 101,
"Info1" : {
"StudentName" : "Chris"
},
"Info2" : {
"TeacherName" : "David"
}
},
{
"id" : 102,
"Info1" : {
"StudentName" : "Robert"
},
"Info2" : {
"TeacherName" : "John"
},
"CountryName" : "US"
}
]
} -
タグを更新するMongoDBクエリ
MongoDBでタグを更新するには、updateコマンドを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo713.insertOne( ... { ... tags: ... [ ... { ... id:101, ... Name:"Tag-1" ... }, ... &nb
-
MongoDBのサブドキュメントの配列をクエリする
サブドキュメントの配列をクエリするには、MongoDBで$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo499.insertOne({ ... "details": ... [ ... { ... Name :"MIT", ... Rank: 1, ...