这是查询后我的文档的结果
players.find().fetch():
{name:'john', sessionIDz:"utFmxmRioDiZdmwGJ"},
{name:'jessica', sessionIDz:"FmwgXvxHZmuAwSzpe"},
{name:'Liz', sessionIDz:"FmwgXvxHZmuAwSzpe"},
{name:'Ericsson', sessionIDz:"FmwgXvxHZmuAwSzpe", Winner: 1},
{name:'Anderson', sessionIDz:"utFmxmRioDiZdmwGJ"}
查询后:
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()
非常感谢您的帮助。
答案 0 :(得分:4)
您需要在同一查询对象中包含条件。因为逻辑不大于或等于
{ "$not": { "$gte": 1 } }
与少于
相同{ "$lt": 1 }
您的查询可能会简化为
player.find({
"Winner": { "$lt": 1 },
"sessionIDz": "FmwgXvxHZmuAwSzpe"
}).fetch()
或者如果要查询Winner
字段不存在的位置,则查询为
player.find({
"Winner": { "$exists": false },
"sessionIDz": "FmwgXvxHZmuAwSzpe"
}).fetch()
答案 1 :(得分:2)
查询json必须是find函数的第一个参数。您已将查询拆分为2个单独的对象,这就是您无法获得所需结果的原因。
请尝试以下方法:
player.find( { Winner: { $not: { $gte: 1 } }, sessionIDz: "FmwgXvxHZmuAwSzpe" }).fetch()
此外,不大于或等于 = 小于。因此,以下内容也将取得您的成果。
player.find( { Winner: { $lt: 1 }, sessionIDz: "FmwgXvxHZmuAwSzpe" }).fetch()