配列から複数の値をプルするMongoDBクエリ
値をプルするには、$ pullを使用して、 multi:trueを設定します 。まず、ドキュメントを使用してコレクションを作成しましょう-
> db.demo392.insertOne(
... {
... Name: 'Chris',
... details: [
... {
... _id: '101'
...
... },
... {
... _id: '102'
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e5d2b3322064be7ab44e802")
}
>
> db.demo392.insertOne(
... {
... Name: 'Chris',
... details: [
... {
... _id: '104'
...
... },
... {
... _id: '101'
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e5d2b3422064be7ab44e803")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo392.find();
これにより、次の出力が生成されます-
{
"_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [
{ "_id" : "101" }, { "_id" : "102" }
]
}
{
"_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [
{ "_id" : "104" }, { "_id" : "101" }
]
} 以下は、配列から$pullへのクエリです-
> db.demo392.update(
... { },
... { $pull: { details: { _id: '101' } } },
... { multi: true }
... )
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 }) find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo392.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e5d2b3322064be7ab44e802"), "Name" : "Chris", "details" : [ { "_id" : "102" } ] }
{ "_id" : ObjectId("5e5d2b3422064be7ab44e803"), "Name" : "Chris", "details" : [ { "_id" : "104" } ] } -
MongoDBのサブドキュメントの配列をクエリする
サブドキュメントの配列をクエリするには、MongoDBで$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo499.insertOne({ ... "details": ... [ ... { ... Name :"MIT", ... Rank: 1, ...
-
コレクションから配列全体を削除するMongoDBクエリ?
コレクションから配列全体を削除するには、MongoDBで$unsetを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo609.insertOne({"ListOfSubject":["MySQL","MongoDB"]});{ "acknowledged" : true, "insertedId" : ObjectId("5e974695f57d0dc0b182d62c") } > db.demo609