如何使用布尔值查询 MongoDB 中的字段和 return 布尔值是真还是假

How to query a field in MongoDB with a boolean value and return a boolean whether it's true or false

查看我的简单合集:

{_id: "01",
  name: "Jimmy",
  canDrive: false }

找到 document 后我想做的是操作 DOM 并在字段 canDrive 值为 [=17 时显示 <div class="driving-tutorial> =] 并在值为 true

时隐藏它

在流星中是这样的:

Template.profile.rendered = function() {
    if (<query>,<field> == true){
        $('.driving-tutorial').hide();
    else {
        $('.driving-tutorial').show(); }

您可以使用带有 Mongo 选择器的 findOne() method which finds the first document that matches the selector/query object in the arguments. Thus you can call findOne() 来实现此逻辑,该选择器是一个对象,用于指定所需文档的一组必需属性以匹配文档。例如这个选择器

var doc = Model.findOne({ canDrive: false });

将匹配此文档

{
    _id: "01",
    name: "Jimmy",
    canDrive: false 
}

然后您可以在模板函数中使用上述逻辑来检查文档和字段是否存在,同时请记住,如果找不到,findOne() 将 return 为 null匹配文档,如果文档尚未加载或已从集合中删除,通常会发生这种情况:

Template.profile.rendered = function() {
    var doc = Model.findOne({ canDrive: false });
    if (doc && !doc.canDrive){
        $('.driving-tutorial').show();
    else {
        $('.driving-tutorial').hide(); 
    }
}

您还可以使用 jquery toggle() 方法的第二个版本,它接受布尔参数。如果此参数为true,则显示匹配的元素;如果 false,元素被隐藏:

Template.profile.rendered = function() {
    var doc = Model.findOne({ canDrive: false }),
        canDrive = (doc && !doc.canDrive);
    $('.driving-tutorial').toggle(canDrive);
}