MongoDB查询访问使用find,以下主要讲解find查询的过滤条件如何使用
- 基本的查询语法
db.collection.find(query, projection)
- query:查询条件
- projection:使用投影操作符指定返回的键
- 等于,大于,小于条件查询
a. 等于查询 :
> db.collection.find({"age" : "18"})
等同于RDBMS: where age = '18'
b. 大于查询 $gt
> db.collection.find({"age" : {$gt : "18"}})
等同于RDBMS: where age > '18'
c. 大于等于查询 $gte
> db.collection.find({"age" : {$gte : "18"}})
等同于RDBMS: where age >= '18'
d. 小于查询 $lt
> db.collection.find({"age" : {$lt : "18"}})
等同于RDBMS: where age < '18'
e. 小于等于查询 $lte
> db.collection.find({"age" : {$lte : "18"}})
等同于RDBMS: where age <= '18'
- 逻辑与 $and 查询
逻辑与有两种形式可以查询(逗号,) (逻辑运算符 $and)
> db.collection.find({"name":"sanzhang", "age":"18"})
> db.collection.find({$and:[{"name":"sanzhang"}, "age":"18"]})
等同于RDBMS: where name = ‘sanzhang’ and age = ‘18’
为了方便查看,我们格式化一把
逗号查询
> db.collection.find({
"name" : "sanzhang",
"age" : "18"
})
逻辑与查询
> db.collection.find({
$and : [
{"name" : "sanzhang"},
{"age" : "18"}
]
})
建议使用第二种方式实现,更像OOP,而且比较容易与其他运算符做关联查询
以下mongodb查询统一格式化显示,方便观察结构
- 逻辑或 $or 查询
> db.collection.find({
$or : [
{"name" : "zhangsan"},
{"name" : "lisi"}
]
})
等同于RDBMS: where name = ‘sanzhang’ or name = ‘lisi’
- $and 和 $or 关联查询
> db.collection.find({
$and : [
{"name" : "zhangsna"},
{
$or : [
{"age" : "18"},
{"age" : "28"}
]
}
]
})
等同于RDBMS: where name = ‘sanzhang’ and (age = ‘18’ or age = ‘28’)