MongoDB 練習 – マンハッタンまたはブルックリンでアメリカ料理以外のグレード 2 および 6 のレストランを探す

MongoDB

MongoDB Exercises

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 演算子は、料理が「アメリカ料理」であってはいけないことを指定しました。

Previous:マンハッタンまたはブルックリンのグレード 2 および 6 のレストランを探す

Next:マンハッタンまたはブルックリンで、アメリカ料理や中華料理以外のグレード 2 および 6 のレストランを探す

コメント

タイトルとURLをコピーしました