Arrays 如何将$not逻辑查询运算符与其他比较查询运算符组合,以获得更具体的结果?

Arrays 如何将$not逻辑查询运算符与其他比较查询运算符组合,以获得更具体的结果?,arrays,mongodb,meteor,mongodb-query,Arrays,Mongodb,Meteor,Mongodb Query,这是我的文档查询后的结果 players.find().fetch(): 查询后: players.find( { Winner: { $not: { $gte: 1 } } } ).fetch() Yeilds: {name:'Anderson', sessionIDz:"utFmxmRioDiZdmwGJ"}, {name:'john', sessionIDz:"utFmxmRioDiZdmwGJ"}, {name:'jessica', sessionIDz:"FmwgXvxHZmuAwS

这是我的文档查询后的结果

players.find().fetch():

查询后:

players.find( { Winner: { $not: { $gte: 1 } } } ).fetch()
Yeilds:

{name:'Anderson', sessionIDz:"utFmxmRioDiZdmwGJ"},
{name:'john', sessionIDz:"utFmxmRioDiZdmwGJ"},
{name:'jessica', sessionIDz:"FmwgXvxHZmuAwSzpe"},
{name:'Liz', sessionIDz:"FmwgXvxHZmuAwSzpe"}
这很好。但是现在,我如何进一步缩小包含sessionIDz字段的所有文档的收益率:“FmwgXvxHZmuAwSzpe”,如下所示:

{name:'jessica', sessionIDz:"FmwgXvxHZmuAwSzpe"},
{name:'Liz', sessionIDz:"FmwgXvxHZmuAwSzpe"}
是否有一种方法可以将$not逻辑查询运算符与其他比较查询运算符结合使用,以实现此收益率

我尝试了下面的查询,但未能获得所需的结果:

player.find({Winner: { $not: { $gte: 1 }}}, {sessionIDz: { $eq:"FmwgXvxHZmuAwSzpe" } }).fetch()

非常感谢您的帮助。

查询json必须是find函数的第一个参数。您已经将查询拆分为两个单独的对象,这就是为什么无法获得所需结果的原因

请尝试以下操作:

player.find( { Winner: { $not: { $gte: 1 } }, sessionIDz: "FmwgXvxHZmuAwSzpe" }).fetch()
而且,不大于或等于=小于。因此,以下内容也将实现您的目标

player.find( { Winner: { $lt: 1 }, sessionIDz: "FmwgXvxHZmuAwSzpe" }).fetch()

您需要在同一查询对象中包含该条件。因为逻辑不大于或等于

{ "$not": { "$gte": 1 } }
与小于相同

{ "$lt": 1 }
您的查询可以简化为

player.find({
    "Winner": { "$lt": 1 }, 
    "sessionIDz": "FmwgXvxHZmuAwSzpe" 
}).fetch()
或者,如果要查询
Winner
字段不存在的位置,则查询为

player.find({
    "Winner": { "$exists": false }, 
    "sessionIDz": "FmwgXvxHZmuAwSzpe" 
}).fetch()

@SirBT有什么特别的原因让你不接受这个答案吗?知道这一点可以让我在将来更好地确定我的答案,或者解决任何你可能误解的问题。我的印象是,一个人可以接受两个或更多的答案。对此我非常抱歉。你的答案框架很好,根本不需要改进@SirBT没关系,只有一个答案可以接受
player.find({
    "Winner": { "$exists": false }, 
    "sessionIDz": "FmwgXvxHZmuAwSzpe" 
}).fetch()