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: [
{
$or: [
{ "grades.score": 2 },
{ "grades.score": 6 }
]
},
{
$or: [
{ borough: "Manhattan" },
{ borough: "Brooklyn" }
]
},
{
$nor: [
{ cuisine: "American" },
{ cuisine: "Chinese" }
]
}
]
})
説明
MongoDB の上記のクエリは、スコア 2 または 6 のグレードがあり、マンハッタンまたはブルックリンの区に位置し、アメリカ料理でも中華料理でもない料理を提供するレストラン コレクション内のドキュメントを検索します。
$and 演算子は、複数の条件を AND 論理演算子で組み合わせるために使用されます。
$or 演算子は、スコア 2 のグレードまたはスコア 6 のグレードを持つレストランを検索するための OR 論理演算子として使用され、別の $or 演算子は区が「マンハッタン」または「ブルックリン」であることを確認します。
$nor 演算子は、料理がアメリカ料理でも中華料理でもないレストランを検索するための NOR 論理演算子として使用されます。
Previous:マンハッタンまたはブルックリンにある非アメリカ料理を提供する、グレード 2 または 6 のレストランを検索します
Next:スコア5以上の全レストラン
コメント