查询mongodb条件条件

时间:2014-09-07 18:42:45

标签: node.js mongodb mongoose

如何查询mongo以查找所有非私人博客的列表以及当前登录用户的私人博客。

博客(集合):
_user_id: ref(User), title: String, body: String, private: Boolean, default:false

我可以使用此查询获取所有非私人博客:

Blog.find({_user_id: req.user}).where('private', false).exec();

但我也希望获得所有仅由当前登录用户标记为私有的博客。

使用单个查询是否可以实现此功能。我是否必须依赖map-reduce / aggregate等高级mongodb功能。

1 个答案:

答案 0 :(得分:1)

您可以使用$or将这两种情况包含在一个查询中:

Blog.find({$or: [
    // Non-private blogs
    {private: false},
    // Blogs of the current user
    {_user_id: req.user}
]}).exec(function(err, docs) { ... });

这将提供两个$or子句的结果的联合。