MongoDB クエリを作成して、名前のどこかに 3 文字として「mon」が含まれるレストランの名前、地区、経度、態度、および料理を検索します。
「レストラン」コレクションの構造:
{
"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(
{ name :
{ $regex : "mon.*", $options: "i" }
},
{
"name":1,
"borough":1,
"address.coord":1,
"cuisine" :1
}
);
説明
このMongoDBのクエリコマンドは、’restaurants’という名前のコレクションから特定の条件に一致する文書を取得するものです。
db.restaurants.find( { name : { $regex : "mon.*", $options: "i" } }, { "name":1, "borough":1, "address.coord":1, "cuisine" :1 } );
このクエリの動作は以下の通りです:
{ name : { $regex : "mon.*", $options: "i" } }
:これはクエリのフィルタ条件です。ここでは、”name”フィールドの値が正規表現パターン"mon.*"
に一致する文書を選択しています。また、$options: "i"
を指定して正規表現のマッチングを大文字小文字を区別しないようにしています。つまり、”name”フィールドの値が “mon” から始まる文字列に一致する文書を検索しています。{ "name":1, "borough":1, "address.coord":1, "cuisine" :1 }
:これは、返される文書内で表示するフィールドを指定しています。ここでは、”name”、”borough”、”address.coord”、”cuisine” のフィールドを表示するように指定しています。それぞれのフィールドに対する値が1であるため、これらのフィールドが表示されます。
総合すると、このクエリの目的は、’restaurants’コレクション内の文書の中から、”name”フィールドの値が “mon” から始まる文字列に一致する文書を選択して返すことです。また、返される文書には、”name”、”borough”、”address.coord”、”cuisine” のフィールドが含まれます。
Previous:スコアを7で割った余りが0を返すレストランのレストランID、名前、グレードを表示します
Next:名前の最初の 3 文字に Mad が含まれるレストランのレストラン名、地域、経度、緯度、および料理を検索します
コメント