首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb return person if comments

mongodb return person if comments
EN

Stack Overflow用户
提问于 2012-02-13 20:24:17
回答 2查看 35关注 0票数 1

我有一个返回帖子和person内容类型的查询。

代码语言:javascript
复制
var query = {
  type: {
    $in: ["post", "person"]
  },
}

但是我只想返回person,如果person有任何评论,但总是帖子。

代码语言:javascript
复制
var query = {
  type: {
    $in: ["post", "person"]
  },
  // somehow make this only for person
  // comments: {"$exists": true}
}

这是可能的吗?还是我应该使用map reduce?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-13 20:36:32

代码语言:javascript
复制
var query = {
    $or: [
        { type: "post" },
        { type: "person", comments: { $exists: true }},
    ]
}
票数 1
EN

Stack Overflow用户

发布于 2012-02-13 20:39:20

这应该可以用,我刚刚测试过了:

代码语言:javascript
复制
db.things.find({$or: [ { type: "post" }, 
                      { type: "person", comments: { $exists: true }} ]})

我最初认为不可能在查询中使用相同的字段名两次,但这只是一些驱动程序的问题。here你可以找到关于这方面的讨论。

另外,map/reduce通常对于实时查询是不可接受的,因为它相当慢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9260462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档