使用mongo命令行查询数据
查询可以返回集合中的所有文档,或者仅仅返回指定过滤条件的文档。你可以指定一个过滤条件或才一个判断条件作为参数传递给find()
方法。
find()
方法在一个游标中返回所有的结果集,通过游标的迭代可以输出所有文档。
查询集合中的所有文档
查询集合中的所有文档,直接调用集合的find()
方法,不需要指定条件。如下命令查询restaurants
中的所有文档。
返回的结果集包含restaurants
所有的文档。
指定”等于”条件
查询条件如果是某个字段上的“等于”匹配的话,具有如下格式:
如果就文内嵌字段,或者是数组,使用“.”号访问字段。而且必要使用相号括住整个字段名。
下面的命令查询所有borough
字段值为”Manhattan”的文档。
db.restaurants.find( { "borough": "Manhattan" } )
查询的结果集中仅包含匹配的文档。
根据数组中的字段查询
在restaurants集合中,grades数组包含了内嵌文档作为它的元素。使用“.”号可以在内嵌文档中的某个字段上指定一个条件。同样,需要用引号括住有点号的引用。如下命令查询grades包括一个内嵌文档,它的grade字段的值为’B’的所有文档。
指定操作条件查询
MongoDB提供了一些操作用来指定查询条件,比如比较操作。一些操作是除此之外的,比如$or
和$and
条件操作。使用操作的查询条件的格式如下:
{ <field1>: { <operator1>: <value1> } }
小于操作($lt)
逻辑AND
你可以使用逻辑AND用于查询条件之间,使用逗号隔开。
db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } )
你可以为多个查询条件中使用逻辑OR,使用$or查询操作。
db.restaurants.find(
)
当然,$and也可以使用上面的语法。
排序查询结果
指定查询结果排序方式的就是在查询后追加一个sort()
方法调用。传递给此方法一个文档,包含指定排序字段和排序类型。1表示长充,-1表示降序。
如上命令,先按borough字段升序排列,再按address.zipcode升序排。