MongoDB クエリを作成して、スコア 2 とスコア 6 を持ち、マンハッタンまたはブルックリンの区内にあり、料理がアメリカ料理ではないレストランを検索します。
「レストラン」コレクションの構造:
{
"address": {
"building": "1007",
"coord": [ -73.856077, 40.848447 ],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
}
Query
db.restaurants.find({
$and: [
{borough: {$in: ["Manhattan", "Brooklyn"]}},
{"grades.score": {$all: [2, 6]}},
{cuisine: {$ne: "American"}}
]
})
説明
MongoDB の上記のクエリは、スコア 2 とスコア 6 を持ち、マンハッタンまたはブルックリンの区に位置し、料理がアメリカ料理ではないレストランを検索します。
$and 演算子内で、$in 演算子は区が「マンハッタン」または「ブルックリン」である必要があることを指定し、$all 演算子は評定にそれぞれ 2 と 6 に一致するスコアを持つ少なくとも 2 つのサブ文書が含まれている必要があることを指定しました。
$ne 演算子は、料理が「アメリカ料理」であってはいけないことを指定しました。
コメント