2015-06-01 102 views
1

检查我的简单集合返回一个布尔值:如何查询字段MongoDB中有一个布尔值,其是否真或假

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

我想document发现做一次什么,是操纵DOM,并显示出<div class="driving-tutorial>如果字段canDrive值是false和隐藏它,如果值是true

像这样的流星:

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

回答

2

您可以使用findOne()方法实现此逻辑,该方法将查找与参数中的选择器/查询对象相匹配的第一个文档。因此,您可以使用Mongo选择器调用findOne(),它是一个对象,用于指定所需文档的一组必需属性以匹配文档。例如,这个选择

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

将这个文件

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

然后,您可以用上面的逻辑在你的模板函数来检查文件和场的存在,同时铭记匹配

Template.profile.rendered = function() { 
    var doc = Model.findOne({ canDrive: false }); 
    if (doc && !doc.canDrive){ 
     $('.driving-tutorial').show(); 
    else { 
     $('.driving-tutorial').hide(); 
    } 
} 
:如果它未能找到匹配的文件,如果文件尚未加载或尚未从集合已被删除常发生 findOne()将返回null

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

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

* face palm * - 它是点符号。也欣赏'toggle()'advise – phtn458

相关问题