文档查询
MongoDB查询文档使用find()方法,find(0方法以结构化的的方式来显示所有文档。
db.集合名称.find(query,projection)
- query: 可选参数,使用操作符指定查询条件。
- projection 可选参数,使用投影操作符指定返回的键。查询时返回文档中所有的键,只需要省略改参数即可(默认为省略)。
若你需要以结构化的方式来读取数据,可以使用pretty()方法。
db.集合名称.find().pretty()
pretty()方法以结构化的方式来显示所有的文档。
并不会对所有的数据数据格式化。只会对文档按照一定的长度进行格式化。
MongoDB 与 RDBMS Where 语句比较
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:
MongoDB AND 条件
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
语法格式如下:
db.集合名称.find({key1:value1, key2:value2}).pretty()
MongoDB OR 条件
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
db.集合名称.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
AND 和 OR 联合使用
>db.user.find({"age": {$gt:50}, $or: [{"name": "xiang"},{"age": "30"}]}).pretty();
模糊查询
MongoDB 中没有查询的关键字,它的模糊查询是靠正则表达式来实现的。
db.user.find({name:/1/}).pretty();
排序
db.集合名称.find.sort({name:1,age:1})
其中 1为升序,-1为降序。
分页
db.集合名称.find.sort({name:1,age:1}).skip(start).limit(rows);
总条数
db.user.count();
db.user.find({name:/1/}).count();
去重
db.集合名称.distinct('字段');
指定返回字段
db.user.find({条件},{name:1,age:1});
参数1 返回 0返回,不能同时使用