複数の基準(範囲)を持つ配列内の値を検索するためのMongoDBクエリ
範囲内の配列の値を見つけるには、$gtと$ltを使用します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo341.insertOne({
... "Name": "Chris",
... "productDetails" : [
... {
... "ProductPrice" : {
... "Price" : 800
... }
... },
... {
... "ProductPrice" : {
... "Price" : 400
... }
... },
... {
... "ProductPrice" : {
... "Price" : 300
... }
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e53ed5cf8647eb59e5620a7")
}
> db.demo341.insertOne({
... "Name": "Chris",
... "productDetails" : [
... {
... "ProductPrice" : {
... "Price" : 1000
... }
... },
... {
... "ProductPrice" : {
... "Price" : 1200
... }
... },
... {
... "ProductPrice" : {
... "Price" : 1300
... }
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e53edc1f8647eb59e5620a8")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo341.find();
これにより、次の出力が生成されます-
{
"_id" : ObjectId("5e53ed5cf8647eb59e5620a7"), "Name" : "Chris", "productDetails" : [
{ "ProductPrice" : { "Price" : 800 } }, { "ProductPrice" : { "Price" : 400 } },
{ "ProductPrice" : { "Price" : 300 } }
]
}
{
"_id" : ObjectId("5e53edc1f8647eb59e5620a8"), "Name" : "Chris", "productDetails" : [
{ "ProductPrice" : { "Price" : 1000 } }, { "ProductPrice" : { "Price" : 1200 } },
{ "ProductPrice" : { "Price" : 1300 } }
]
} 以下は、複数の基準を持つ配列内の値を見つけるためのクエリです-
> db.demo341.aggregate([
... { "$match": {
... "productDetails": {
... "$elemMatch": {
... "ProductPrice.Price": {
... "$gt": 600,
... "$lt": 900
... }
... }
... }
... }}
... ]).pretty(); これにより、次の出力が生成されます-
{
"_id" : ObjectId("5e53ed5cf8647eb59e5620a7"),
"Name" : "Chris",
"productDetails" : [
{
"ProductPrice" : {
"Price" : 800
}
},
{
"ProductPrice" : {
"Price" : 400
}
},
{
"ProductPrice" : {
"Price" : 300
}
}
]
} -
オブジェクトの配列内で複数の一致を見つけるためのMongoDBクエリ?
これには、$andを$regexと一緒に使用します。 $ andは、1つ以上の式の配列に対して論理積演算を実行し、配列内のすべての式を満たすドキュメントを選択します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});{ "acknowledged" : true, "insert
-
MongoDBで配列をクエリして、特定の値をフェッチします
配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ... { ... "details": [ ... { ... "student": { ... &nb