我期待'.find'
所有文档,'.where'
用户名是'.in'
to:数组和upVoted:true '.or'
noVote:true,所有按降序排序
这是一个示例文档结构:
to: [String],
voting: {
upVoted: Boolean,
noVote: Boolean,
downVoted: Boolean
},
rank: Number
此查询有效,但如何在Mongoose .dot notation中编写:
Story.find({
$and: [
{ to: { $in: [ 'user1' ] } },
{ $or: [{ 'voting.upVote': true }, { 'voting.noVote': true }] }
]
}, function (err, stories) {
我们正在研究用于排序此
的正确语法答案 0 :(得分:1)
您的原始查询可以变得更简单,因为您不需要$和(它在MongoDB中隐含)。此外,如果您只查找ṫo
数组中的一个用户,那么您也不需要$ in运算符。
{
to: 'user1',
$or: [{ 'voting.upVote': true }, { 'voting.noVote': true }]
}
使用Mongoose查询API:
var query = Story.find();
query.where('to', 'user1');
query.or({ 'voting.upVote': true }, { 'voting.noVote': true });
query.exec(function (err, doc) {
if (err) ...
});
或者如果您正在寻找多个用户,请替换:
query.where('to', 'user1');
with:
query.where('to').in(['user1', 'user2']);