MongoDBで配列要素をフィルタリングする方法は?
$ setIntersection演算子を集約フレームワークと一緒に使用して、MongoDBの配列要素をフィルター処理できます。まず、ドキュメントを使用してコレクションを作成しましょう-
> db.filterArrayElementsDemo.insertOne( { "Scores": [10,45,67,78,90,98,99,92] } );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd2d582b64f4b851c3a13c8")
} 以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-
> db.filterArrayElementsDemo.find().pretty();
これにより、次の出力が生成されます-
{
"_id" : ObjectId("5cd2d582b64f4b851c3a13c8"),
"Scores" : [
10,
45,
67,
78,
90,
98,
99,
92
]
} 以下は、配列要素をフィルタリングするためのクエリです-
> db.filterArrayElementsDemo.aggregate([
... { $match : {
... _id: ObjectId("5cd2d582b64f4b851c3a13c8")
... }},
... { $project: {
... Scores: {
... $setIntersection: ['$Scores', [10,98,99]]
... }
... }}
... ]); これにより、次の出力が生成されます-
{ "_id" : ObjectId("5cd2d582b64f4b851c3a13c8"), "Scores" : [ 10, 98, 99 ] } -
MongoDB配列の要素を削除するにはどうすればよいですか?
要素を削除するには、MongoDBで$ pullを更新して、使用します。 $ pull演算子は、既存の配列から、指定された条件に一致する1つまたは複数の値のすべてのインスタンスを削除します。 まず、ドキュメントを使用してコレクションを作成しましょう- db.demo541.insertOne({"software":{"services":["gmail","facebook","yahoo"]}});{ "acknowledged" : true
-
MongoDBアグリゲーションで配列の要素のサブセットを一緒に追加するにはどうすればよいですか?
配列の要素のサブセットを追加するには、$firstと$sumを一緒に使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo610.insertOne({Values:[10,20,30,40,50]});{ "acknowledged" : true, "insertedId" : ObjectId("5e9747b8f57d0dc0b182d62e") } find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db.demo610.f