如何查询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功能。
答案 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
子句的结果的联合。