MongoDBクエリのドキュメント
MongoDBは、find()メソッドを使用してドキュメントをクエリします。
find()メソッドは、すべてのドキュメントを構造化されていない方法で表示します。
文法
MongoDBクエリデータの構文は次のとおりです。
db.collection.find(クエリ、投影)
- query :オプション、クエリ演算子を使用してクエリ条件を指定します
- プロジェクション :オプション。プロジェクション演算子を使用して、返されるキーを指定します。クエリ中にドキュメント内のすべてのキー値が返されます。このパラメーターを省略すればよいだけです(デフォルトは省略されています)。
読みやすい方法でデータを読み取る必要がある場合は、pretty()メソッドを使用できます。構文は次のとおりです。
> db.col.find()。pretty()
pretty()メソッドは、すべてのドキュメントをフォーマットされた方法で表示します。
例
次の例では、コレクションcolのデータをクエリします。
> db.col.find()。pretty() { "_id":ObjectId( "56063f17ade2f21f36b03133")、 "タイトル": "MongoDB教程"、 "説明": "MongoDBはNosqlデータベースです"、 "によって": "新人チュートリアル"、 "url": "http://www.runoob.com"、 「タグ」:[ "mongodb"、 "データベース"、 「NoSQL」 ]、 「いいね」:100 }
find()メソッドに加えて、ドキュメントを1つだけ返すfindOne()メソッドもあります。
MongoDBとRDBMS Whereステートメントの比較
通常のSQLデータに精通している場合は、次の表でMongoDBの条件付きクエリをよく理解できます。
運営 | フォーマット | 例 | RDBMSの同様のステートメント |
---|---|---|---|
等しい | {<key>:<value> } |
db.col.find({"by":"菜鸟教程"}).pretty() |
where by = '菜鸟教程' |
未満 | {<key>:{$lt:<value>}} |
db.col.find({"likes":{$lt:50}}).pretty() |
where likes < 50 |
以下 | {<key>:{$lte:<value>}} |
db.col.find({"likes":{$lte:50}}).pretty() |
where likes <= 50 |
より大きい | {<key>:{$gt:<value>}} |
db.col.find({"likes":{$gt:50}}).pretty() |
where likes > 50 |
以上 | {<key>:{$gte:<value>}} |
db.col.find({"likes":{$gte:50}}).pretty() |
where likes >= 50 |
等しくない | {<key>:{$ne:<value>}} |
db.col.find({"likes":{$ne:50}}).pretty() |
where likes != 50 |
MongoDB AND条件
MongoDBのfind()メソッドは複数のキーを渡すことができ、各キーはコンマで区切られます。これは通常のSQLのAND条件です。
構文は次のとおりです。
> db.col.find({key1:value1、key2:value2})。pretty()
例
することにより、以下の例 による と 、タイトル の問合せキーに 新人チュートリアル で MongoDBのチュートリアル データ
> db.col.find({"by": "Rookie Tutorial"、 "title": "MongoDB Tutorial"})。pretty() { "_id":ObjectId( "56063f17ade2f21f36b03133")、 "タイトル": "MongoDB教程"、 "説明": "MongoDBはNosqlデータベースです"、 "によって": "新人チュートリアル"、 "url": "http://www.runoob.com"、 「タグ」:[ "mongodb"、 "データベース"、 「NoSQL」 ]、 「いいね」:100 }
上記の例はWHEREステートメントに似ています:WHERE by = 'Rookie tutorial' AND title = 'MongoDB tutorial'
MongoDB OR条件
MongoDB OR条件ステートメントでは、キーワード$またはを使用 します。構文は次のとおりです。
> db.col.find( { $ or:[ {key1:value1}、{key2:value2} ] } )。可愛い()
例
次の例では、 値キーrookie tutorialまたはキー タイトル 値 MongoDB tutorialによるクエリキーのドキュメントを示しました 。
> db.col.find({$ or:[{"by": "菜鸟教程"}、{"title": "MongoDB教程"}]})。pretty() { "_id":ObjectId( "56063f17ade2f21f36b03133")、 "タイトル": "MongoDB教程"、 "説明": "MongoDBはNosqlデータベースです"、 "によって": "新人チュートリアル"、 "url": "http://www.runoob.com"、 「タグ」:[ "mongodb"、 "データベース"、 「NoSQL」 ]、 「いいね」:100 } >
ANDとORの併用
次の例は、従来のSQLステートメントと同様に、ANDとORの組み合わせ使用を示しています。 'where likes> 50 AND(by =' Rookie tutorial 'OR title =' MongoDB tutorial ')'