Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb返回人if注释_Mongodb - Fatal编程技术网

mongodb返回人if注释

mongodb返回人if注释,mongodb,Mongodb,我有一个返回帖子和人物内容类型的查询 var query = { type: { $in: ["post", "person"] }, } 但我只想返回的人,如果有任何意见,但帖子总是 var query = { type: { $in: ["post", "person"] }, // somehow make this only for person // comments: {"$exists": true} } 这是可能的还是应该使用map r

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

var query = {
  type: {
    $in: ["post", "person"]
  },
}
但我只想返回的人,如果有任何意见,但帖子总是

var query = {
  type: {
    $in: ["post", "person"]
  },
  // somehow make this only for person
  // comments: {"$exists": true}
}
这是可能的还是应该使用map reduce


谢谢。

这应该行得通,我刚刚测试过:

var query = {
    $or: [
        { type: "post" },
        { type: "person", comments: { $exists: true }},
    ]
}
db.things.find({$or: [ { type: "post" }, 
                      { type: "person", comments: { $exists: true }} ]})
我最初认为不可能在查询中两次使用相同的字段名,但这只是一些驱动程序的问题。你可以找到关于这个的讨论


另外,map/reduce通常不适用于实时查询,因为它非常慢

感谢您提供有关map/reduce和实时查询的提示。