查詢内嵌文檔和查詢普通文檔完全相同;
例如:
1
2
3
4
5
6
<code>> db.post.</code><code>find</code><code>() </code>
<code>{ </code><code>"_id"</code> <code>: ObjectId(</code><code>"54ace1394ba07ed75df68f90"</code><code>), </code><code>"name"</code> <code>: { </code><code>"firstname"</code> <code>: </code><code>"joe"</code><code>, </code><code>"lastname"</code> <code>: </code><code>"schome"</code> <code>}, </code><code>"age"</code> <code>: 28 } </code>
<code>{ </code><code>"_id"</code> <code>: ObjectId(</code><code>"54ace14a4ba07ed75df68f91"</code><code>), </code><code>"name"</code> <code>: { </code><code>"firstname"</code> <code>: </code><code>"snail"</code><code>, </code><code>"lastname"</code> <code>: </code><code>"yu"</code> <code>}, </code><code>"age"</code> <code>: 29 } </code>
<code>{ </code><code>"_id"</code> <code>: ObjectId(</code><code>"54ace18d4ba07ed75df68f92"</code><code>), </code><code>"name"</code> <code>: { </code><code>"firstname"</code> <code>: </code><code>"sunny"</code><code>, </code><code>"lastname"</code> <code>: </code><code>"wu"</code> <code>}, </code><code>"age"</code> <code>: 26 }</code>
<code>> db.post.</code><code>find</code><code>({</code><code>"name"</code><code>:{</code><code>"firstname"</code><code>:</code><code>"joe"</code><code>,</code><code>"lastname"</code><code>:</code><code>"schome"</code><code>}}) </code>
<code>{ </code><code>"_id"</code> <code>: ObjectId(</code><code>"54ace1394ba07ed75df68f90"</code><code>), </code><code>"name"</code> <code>: { </code><code>"firstname"</code> <code>: </code><code>"joe"</code><code>, </code><code>"lastname"</code> <code>: </code><code>"schome"</code> <code>}, </code><code>"age"</code> <code>: 28 } ></code>
查詢内嵌文檔必須精确比對,如果順序錯了也是查詢不到的;
我們可以改成”.”的模式來查詢内嵌的文檔,這樣無需精确比對,也無關順序;
<code>> db.post.</code><code>find</code><code>({</code><code>"name.firstname"</code><code>:</code><code>"joe"</code><code>}) </code>
<code>></code>
本文轉自 bannerpei 51CTO部落格,原文連結:http://blog.51cto.com/281816327/1600247,如需轉載請自行聯系原作者