我如何使用布尔值查询mongodb中的字段并返回一个布尔值,无论其是真还是假

时间:2015-06-01 06:44:47

标签: javascript mongodb meteor mongodb-query boolean-logic

查看我的简单收藏:

{_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(); }

1 个答案:

答案 0 :(得分:1)

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

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

将匹配此文档

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

然后,您可以在模板函数中使用上述逻辑来检查文档和字段是否存在,同时请记住findOne()如果找不到匹配的文档,将返回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);
}