如何在Mongo查询中接受条件参数?

时间:2015-11-17 02:03:34

标签: mongodb meteor

我有一个我在Meteor应用程序中调用的方法,它接受的参数数量可能会有所不同,具体取决于来电的来源:

myFunc: function (attr){
    if( typeof attr === 'object' ) {
        return Items.update(
                {
                    _id: attr.itemId
                },
                {
                    $set: {
                        field_1: attr.someValue1,
                        field_2: attr.someValue2
                    }
                },
                function (error, result) {});
    }
}

在这个例子中," attr.someValue2"可能会或可能不会在传递给此函数的attr对象中,那么构造上述查询的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您需要为object参数中未提供属性时提供默认值:

myFunc: function (attr){
  if( typeof attr === 'object' ) {
    return Items.update(
      {
        _id: attr.itemId
      },
      {
        $set: {
          field_1: attr.someValue1 === undefined ? attr.someValue1 : 'N/A',
          field_2: attr.someValue2 === undefined ? attr.someValue2 : 'N/A'
        }
      },
      function (error, result) {}
    );
  }
}