我有一个返回帖子和person内容类型的查询。
var query = {
type: {
$in: ["post", "person"]
},
}但是我只想返回person,如果person有任何评论,但总是帖子。
var query = {
type: {
$in: ["post", "person"]
},
// somehow make this only for person
// comments: {"$exists": true}
}这是可能的吗?还是我应该使用map reduce?
谢谢。
发布于 2012-02-13 20:36:32
var query = {
$or: [
{ type: "post" },
{ type: "person", comments: { $exists: true }},
]
}发布于 2012-02-13 20:39:20
这应该可以用,我刚刚测试过了:
db.things.find({$or: [ { type: "post" },
{ type: "person", comments: { $exists: true }} ]})我最初认为不可能在查询中使用相同的字段名两次,但这只是一些驱动程序的问题。here你可以找到关于这方面的讨论。
另外,map/reduce通常对于实时查询是不可接受的,因为它相当慢。
https://stackoverflow.com/questions/9260462
复制相似问题