db.collection.
find
(查询,投影)query
{}
)。projection
query
标准的文档。当find()方法“返回文档”时,该方法实际上是将光标返回到文档。projection
参数确定匹配文档中返回的字段。 projection
参数采用以下形式的文档:<value>
可以是以下任何一种:1
或true
在 return 文档中包含该字段。0
或false
排除该字段。注意对于_id
字段,您不必明确指定_id: 1
来_return_id
字段。除非指定_id: 0
以禁止字段,否则find()方法始终返回_id字段。
_id
字段外,projection
不能同时包含 include 和 exclude 规范。在明确包含字段的投影中,_id
字段是您可以显式排除的唯一字段。it
以继续迭代。也可以看看
迭代返回的游标 修改光标行为 可用的mongo Shell游标方法
qty
的 value 大于4
的文档。_id
等于"avocados"
的文档,因为qty
value 的类型为string
而$gt操作数的类型为integer
。_id
等于"oranges"
的文档,因为其qty
value 的类型为object
。注意要在集合中强制执行数据类型,请使用Schema 验证。
getMore
在会话外调用 。getMore
在会话内部调用 。mongo
shell程序将所有操作与服务器会话相关联,但未确认的写操作除外。对于未与会话明确关联的操作(即使用Mongo.startSession()
),MongoDB驱动程序和mongo
外壳程序会创建一个隐式会话并将其与该操作相关联。noCursorTimeout
或maxTimeMS
30分钟以上的光标。Session.startSession()
并使用该refreshSessions
命令定期刷新该会话。请参阅以获取更多信息。Session Idle Timeout
db.collection.find()
可以在多文档交易中使用。getMore
在事务内部调用 。getMore
在事务外部调用 。重要在大多数情况下,与单文档写入相比,多文档事务产生的性能成本更高,并且多文档事务的可用性不应替代有效的架构设计。在许多情况下, 非规范化数据模型(嵌入式文档和数组)将继续是您的数据和用例的最佳选择。也就是说,在许多情况下,适当地对数据建模将最大程度地减少对多文档交易的需求。有关其他事务使用方面的注意事项(例如运行时限制和操作日志大小限制),另请参见 生产注意事项。
db.collection.find()
断开连接的客户端在操作完成之前断开连接,则MongoDB将标记db.collection.find()
为终止(即killOp
在操作上)。bios
集合,请参阅bios Example Collection。_id
等于5
的文档:name
嵌入文档中的字段last
等于"Hopper"
:注意要访问嵌入文档中的字段,请使用点符号("<embedded document>.<field>"
)。
<criteria>
参数调用find()。_id
等于5
或ObjectId("507c35dd8fada716c89d0013")
:bios
集合中birth
大于new Date('1950-01-01')
的所有文档:name.last
字段以字母N
(或"LIKE N%"
)开头birth
介于new Date('1940-01-01')
和new Date('1960-01-01')
之间(独占):birth
字段为比...更棒 new Date('1950-01-01')
且death
字段不存在:name
嵌入字段。name
正好是{ first: "Yukihiro", last: "Matsumoto" }
,包括 order:name
字段必须完全匹配嵌入文档。查询将使文档与具有name
以下任一值的字段进行匹配:name
包含带有 value "Yukihiro"
的字段first
和带有 value "Matsumoto"
的字段last
。该查询使用点符号访问嵌入文档中的字段:name
字段包含嵌入文档的文档,其中first
字段包含 value "Yukihiro"
,字段last
包含 value "Matsumoto"
。例如,查询将使用包含以下任一值的name
字段匹配文档:contribs
array。contribs
包含元素"UNIX"
:contribs
包含元素"ALGOL"
或"Lisp"
:contribs
包含元素"ALGOL"
和"Lisp"
:contribs
的 array 大小为 4 的文档:awards
array。awards
array 包含award
字段等于"Turing
的元素:awards
array 包含至少一个元素,其中award
字段等于"Turing Award"
且year
字段大于 1980:projection
参数指定 return 的哪些字段。除非排除属于_id
字段,否则该参数包含 include 或 exclude 规范,而不是两者。注意除非在投影文档_id: 0
中明确排除_id
字段,否则返回_id
字段。
name
字段,contribs
字段和_id
字段:注意除非在投影文档_id: 0
中明确排除_id
字段,否则返回_id
字段。
name
嵌入文档和birth
字段中的first
字段之外的所有字段:注意除非在投影文档_id: 0
中明确排除_id
字段,否则返回_id
字段。
name
字段和contribs
字段:name
嵌入文档中的last
字段和contribs
array 中的前两个元素:也可以看看从查询返回的项目字段
var
关键字将返回的游标分配给变量,则会自动迭代游标以访问最匹配查询的前 20 个文档。您可以设置DBQuery.shellBatchSize
变量以更改自动迭代文档的数量。var
关键字的变量,如以下部分所示。myCursor
迭代游标并打印匹配的文档:printjson()
方法而不是print(tojson())
:name
中按name
字段按升序排序的文档中的文档:ORDER BY
语句。5
个文档:LIMIT
语句。5
文档并返回所有剩余文档:mongo
Shell游标方法