MongoDB查询文档内容的方法
-
MongoDB 查询文档使用 find() 方法。
-
find() 方法以非结构化的方式来显示所有文档。
-
findOne() 方法,它只返回一个文档。
语法:
db.collection.find(query, projection)
-
query :可选,使用查询操作符指定查询条件
-
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
易读的方式来读取数据,可以使用 pretty() 方法--->pretty() 方法以格式化的方式来显示所有文档。
db.collection.find().pretty()
MongoDB与RDBMS Where语句比较
操作 | 格式 | 范例 | 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() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
语法:
db.collection.find({key1:value1, key2:value2}).pretty()
实例:
db.teacher.find({by:'JunBoy',title:'Java'}).pretty()
MongoDB中OR条件
MongoDB OR 条件语句使用了关键字 $or
语法:
db.collection.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
这个$or就是一个变量,将值传递给变量然后再去查询
实例:--->注意{}的数量,find()方法内先要放一层{}变量后要用"[]"数组符号里面再放域
db.teacher.find(
{$or:[
{title:'Java'},
{by:'LuciferOfLive'}
]
}
).pretty()
MongoDB中AND和OR联合使用
MongoDB使用变量$gt表示''>'',使用变量$or表示OR。复合语句严格按照各语句的样式写即可
实例:--->类似常规 SQL 语句为:where like>300 AND (title = 'Java' OR title = 'java')
db.getCollection("teacher").find(
{
like:{$gt:300},
$or:[
{title:'Java',title:'java'}
]
}
)
这个方法只能返回同数据的第一条记录
实际查询得到的结果: