{
"name": "peter",
"time": {
"year": "2014",
"month" "2014-12"
}
}
上面这个对象可以用 db.collection.find(name: “peter”) 找到,但如果想用 time.month 匹配该怎么找呢? 尝试使用 where() 结果返回
TypeError: Object DBQuery: db.collection -> { } has no method ‘where’
好吧,知道了。
db.collection.find({time: {year: '2014'}})
@wh1100717 这样似乎不行,我试过了。因为 time 的内容是 { “year”: “2014”, “month” “2014-12” } 所以查询结果为空。
db.collection.find({ “time.year” : “2014” })
@Hanggi 嗯这样是不行~ 我记混了… 我自己做的一个项目是支持这种查询方式的。mongodb关于嵌入对象的查询可以参考文档 http://docs.mongodb.org/manual/tutorial/query-documents/#match-a-field-in-the-embedded-document-using-the-array-index | http://docs.mongodb.org/manual/core/document/#document-dot-notation | http://docs.mongodb.org/manual/tutorial/query-documents/#read-operations-subdocuments