转自:http://www.mongoing.com/docs/tutorial/query-documents.html
查询方法
MongoDB 提供了 db.collection.find() 方法从集合中读取文档。db.collection.find() 方法返回指向匹配文档的:doc:cursor </tutorial/iterate-a-cursor>。
db.collection.find( <query filter>, <projection> )
对于 cursor 方法,你可以指定下列可选字段:
-
一个 query filter 指明返回哪些文档。
-
一个查询映射来指明返回匹配文档的哪些字段。映射限制了MongoDB通过网络返回给客户端的数据量。
你可以随意增加一个游标修饰符来进行限制、跳过以及排序。除非你声明一个方法 sort() ,否则不会定义查询返回的文档顺序。
示例集合
本页的示例在 mongo shell 中使用了 db.collection.find() 方法。在 mongo shell中,如果返回的游标没有使用 var 关键词赋值给一个变量,游标就会自动迭代20次 [2] ,打印出结果中的前20篇文档。
为填充示例中提到的 user 集合,在 mongo shell 中运行下列命令:
注解
如果 user 集合已经包含了相同 _id 值的文档,你需要在插入示例文档之前 drop 这个集合(db.users.drop())。
db.users.insertMany(
[
{
_id: 1,
name: "sue",
age: 19,
type: 1,
status: "P",
favorites: { artist: "Picasso", food: "pizza" },
finished: [ 17, 3 ],
badges: [ "blue", "black" ],
points: [
{ points: 85, bonus: 20 },
{ points: 85, bonus: 10 }
]
},
{
_id: 2,
name: "bob",
age: 42,
type: 1,
status: "A",
favorites: { artist: "Miro", food: "meringue" },
finished: [ 11, 25 ],
badges: [ "green" ],
points: [
{ points: 85, bonus: 20 },
{ points: 64, bonus: 12 }
]
},
{
_id: 3,
name: "ahn",
age: 22,
type: 2,
status: "A",
favorites: { artist: "Cassatt", food: "cake" },
finished: [ 6 ],
badges: [ "blue", "red" ],
points: [
{ points: 81, bonus: 8 },
{ points: 55, bonus: 20 }
]
},
{
_id: 4,
name: "xi",
age: 34,
type: 2,
status: "D",
favorites: { artist: "Chagall", food: "chocolate" },