我有一个查询来返回帖子和人物内容类型。
var query = {
type: {
$in: ["post", "person"]
},
}
但如果有人有任何意见,我只想回复此人,但总是发帖。
var query = {
type: {
$in: ["post", "person"]
},
// somehow make this only for person
// comments: {"$exists": true}
}
这可能还是我应该使用map reduce?
感谢。
答案 0 :(得分:1)
var query = {
$or: [
{ type: "post" },
{ type: "person", comments: { $exists: true }},
]
}
答案 1 :(得分:1)
这应该有用,我刚测试过它:
db.things.find({$or: [ { type: "post" },
{ type: "person", comments: { $exists: true }} ]})
我最初认为在查询中不可能两次使用相同的字段名称,但这只是一些驱动程序的问题。 here您可以找到有关此问题的讨论。
同时map / reduce通常不能接受实时查询,因为它很慢。