【发布时间】:2015-07-22 13:49:33
【问题描述】:
我有四个对象的集合
[obj1, obj2, obj3, obj4]
什么是通过单个标志实现过滤器逻辑的好方法,当它为真时,我得到
[obj1, obj2 obj3]
如果它是假的,我会得到
[obj1, obj2, obj4]
我想了很长时间,但我无法仅用一个标志想出一个好的解决方案。
我的公寓是学生 = true/false
这是我尝试过的
obj1 = {};
obj2 = {};
obj3 = {student: true};
obj4 = {student: false};
var studentFlag; // Set this flag
Collection.find({$or: [{student: {$exists: false}}, {student: studentFlag}]}).fetch();
我期待当 studentFlag 为真时,我的查询给我 obj1、obj2、obj3,当它为假时,我得到 obj1、obj2、obj4。但我的查询以无效的选择器结束
【问题讨论】:
-
没有足够的信息来回答这个问题。物体是什么样子的?国旗是如何设置的?这是在模板中吗?你试过什么?
-
@DavidWeldon 我更新了描述
-
你让studentFlag = true;在任何地方还是未初始化?
-
@Sindis 它未初始化,这就是我期待 student: {$exists: false} 给我 obj1 和 obj2 的地方
-
设置了 studentFlag 效果好吗?可能 Mongo 查询无法消化没有值的变量
标签: javascript mongodb meteor