语法:
db.collection.find(query, projection)
- 参数说明
- query :可选,使用查询操作符指定查询条件
- projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
格式化:
> db.demo.find().pretty()
操作符查询:
- 大于:(greater than >) $gt
- 大于等于:(gt equal >=) $gte
- 小于:(less than <) $lt
- 小于等于:(lt equal <=) $lte
- 匹配:(equal =) $eq
- 不匹配:( not equal !=) $ne
- 包含:(like) /val1/
- 开头:(like) /^val1/
- 结尾:(like) /val1$/
MongoDB 与 RDBMS Where 语句比较
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:
操作 | 格式 | 范例 | RDBMS中的类似语句 |
---|---|---|---|
大于 | {<key>:{$gt:<val>}} |
db.demo.find({"age":{$gt:20}}).pretty() |
where age > 20 |
大于或等于 | {<key>:{$gte:<val>}} |
db.demo.find({"age":{$gte:20}}).pretty() |
where age >= 20 |
小于 | {<key>:{$lt:<val>}} |
db.demo.find({"age":{$lt:20}}).pretty() |
where age < 20 |
小于或等于 | {<key>:{$lte:<val>}} |
db.demo.find({"age":{$lte:20}}).pretty() |
where age <= 20 |
等于 | {<key>:<val> } |
db.demo.find({"name":"yourName"}).pretty() |
where name = 'yourName' |
不等于 | {<key>:{$ne:<val>}} |
db.demo.find({"age":{$ne:20}}).pretty() |
where age != 20 |
and查询:
> db.demo.find({key1:val1, key2:val2}).pretty()
or查询:
> db.demo.find({$or: [{key1: val1}, {key2:val2}]}).pretty()
and,or查询:
> db.demo.find({"key1": "val1", $or: [{"key2": "val2"},{"key3": "val3"}]}).pretty()
$type查询
类型 | 数字 | 备注 |
---|---|---|
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | 已废弃。 |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 13 | |
Symbol | 14 | |
JavaScript (with scope) | 15 | |
32-bit integer | 16 | |
Timestamp | 17 | |
64-bit integer | 18 | |
Min key | 255 | Query with -1 . |
Max key | 127 |
查询name为String的数据
db.demo.find({"name" : {$type : 2}})
或
db.demo.find({"name" : {$type : 'string'}})
> db.demo.find()
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.find({"name":{$type:2}})
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.find({"name":{$type:'string'}})
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.find({"name":{$type:3}})
>
limit(限定查询数量)
> db.COLLECTION_NAME.find().limit(NUMBER)
skip(跳过数据数量)
> db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
sort(排序)
> db.COLLECTION_NAME.find().sort({KEY:1})
> db.demo.find()
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e79a878a3edd4aa4ff0c2c4"), "name" : "yourName", "age" : "30", "hobby" : [ "drawing", "run" ] }
>
> db.demo.find().sort({"age":1})
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e79a878a3edd4aa4ff0c2c4"), "name" : "yourName", "age" : "30", "hobby" : [ "drawing", "run" ] }
>
> db.demo.find().sort({"age":-1})
{ "_id" : ObjectId("5e79a878a3edd4aa4ff0c2c4"), "name" : "yourName", "age" : "30", "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.find().sort({"name":-1})
{ "_id" : ObjectId("5e79a878a3edd4aa4ff0c2c4"), "name" : "yourName", "age" : "30", "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.find().sort({"name":1})
{ "_id" : ObjectId("5e79a57ba3edd4aa4ff0c2c3"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e79a878a3edd4aa4ff0c2c4"), "name" : "yourName", "age" : "30", "hobby" : [ "drawing", "run" ] }
>