MongoDBの便利な配列演算
データスキーマ
{ "_id" : ObjectId("60966503a06708c0a9d05b51"), "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b52"), "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b53"), "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b54"), "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b55"), "item" : "postcard", "qty" : 45, "tags" : [ "blue" ], "dim_cm" : [ 10, 15.25 ] }
クエリ
1 -罰金順に
あなたが
blank
とred
を含んでいる項目を指定された順序で見つけたいと思うならば、あなたは下記のように質問を書くことができます.db.items.find({tags:["blank","red"]})
// output
{ "_id" : ObjectId("60966503a06708c0a9d05b51"), "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b54"), "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }
Note: Order of the query matters
If you have specified[red,blank]
then you'll get only[red,blank]
not[blank,red]
2 -順序なしで見つける
あなたが正確な順序を望まないならば、あなたはMongoDBの
$all
演算子を使用することができます.db.items.find({tags:{$all:["red"]}})
// output
{ "_id" : ObjectId("60966503a06708c0a9d05b51"), "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b52"), "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b53"), "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "_id" : ObjectId("60966503a06708c0a9d05b54"), "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }
3 -単一要素のチェック
クエリパラメーターに文字列を直接提供できます.
db.items.find({tags:"red"})
配列内の任意の要素をred
を要素として使用します.3 -シングル(条件付き)のチェック
条件チェックの演算子を提供することができます
db.items.find({dim_cm:{$gt:21,$lt:50}})
上記のクエリは、すべての項目を見つけます.それは、50より小さく、21より大きいdim_cm
配列内の任意の要素を持ちます.探検する
あなたは、より詳細にここでhttps://docs.mongodb.com/manual/tutorial/query-arrays/を探検することができます
安達
Reference
この問題について(MongoDBの便利な配列演算), 我々は、より多くの情報をここで見つけました https://dev.to/ats1999/some-useful-array-operations-in-mongodb-eiaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol