查询文档
本文提供了使用mongo shell中db.collection.find()方法查询的案例。案例中使用的inventory集合数据可以通过下面的语句产生。
检索集合中的所有文档
如果想检索集合中的所有文档,可以在find方法中传一个空文档作为查询过滤条件。查询过滤参数确定选择条件:
上述操作对应如下SQL语句:
有关该方法语法的更多信息,请参阅 find()。
等值查询
在查询过滤文档中使用**<字段>:<值>**表达式实现等值查询:
下面的案例返回inventory集合中status等于"D"**的所有文档:
上述操作对应如下SQL语句:
查询条件中使用查询操作符
下面的案例返回inventory集合中status等于**"A"或"D"**的所有文档。
Note:
上述操作对应如下SQL:
有关MongoDB查询运算符的完整列表,请参考查询和映射操作符
AND条件
可以指定文档中的多个字段作为查询条件。在查询语句中使用AND连接多个查询条件来检索集合中满足所有查询条件的文档。
下面的案例返回inventory集合中status等于**"A" 并且qty**小于($lt)30的所有文档:
上述操作对应如下SQL:
关于MongoDB的比较操作符可以参考比较操作符
OR条件
使用$or运算符,可以指定一个联合查询,该查询将每个子句与逻辑 OR 连接起来,以便查询选择集合中至少匹配一个条件的文档。
下面的案例返回inventory集合中status等于**"A" 或者qty**小于($lt)30的所有文档。
上述操作对应如下SQL:
Note:
使用比较操作符的查询受Type Bracketing的约束。
同时使用AND和OR条件
下面的案例返回inventory集合中status等于**"A" 并且qty小于 ($lt) 30或者item** 是以p字符开头的所有文档。
上述操作对应如下SQL:
Note:
MongoDB支持正则表达式操作符$regex来做字符串模式匹配。
其他查询教程
其他查询案例:
行为
游标
使用 db.collection.find()方法返回检索到文档的一个游标。
读隔离
新增加于MongoDB3.2版本
对于副本集或者分片副本集的查询,读关注允许客户端选择读的隔离级别。更多的信息可以查看Read Concern
其它的方法
下面的方法也可以从集合中查询文档:
Note:
db.collection.findOne 方法提供了返回单个文档的读操作。
实际上,db.collection.findOne 就是db.collection.find() 方法后面加了个限制条数1。
原文链接:https://docs.mongodb.com/manual/tutorial/query-documents/
译者:张芷嘉
最后更新于