如果存在var,如何在查询中创build对象或放弃对象?
我正在与mongodb,与ajaxforms,它工作正常…我想放弃查询中的一些元素。 这是代码:
var preVariable= { precio_alquiler: {$lte:query.price_input_by_user}, tipo_usuario: query.type_of_user, }; db.collection('data').find(preVariable,{_id:0},{safe:true}, function(err, result)
说明:
precio_alquiler是元素的价格
tipo_usuario是包含的表单中的一个select
select(name='type_of_user') option(value="Commerce") Comercio option(value="User") Usuario option(value="Mayorist") Mayor
所以问题是…如果用户想咨询一个元素的价格,并忽略用户的types,如何创build查询variables? 这是一个可以解释问题的例子
var preVariable= { precio_alquiler: {$lte:query.price_input_by_user}, tipo_usuario: query.type_of_user || "dont create the object tipo_usuario", };
通常的做法是首先初始化具有已知属性的对象,然后有条件地添加那些依赖于input的对象:
var preVariable = { precio_alquiler: { $lte: query.price_input_by_user } }; if(query.type_of_user) { preVariable.tipo_usuario = query.type_of_user; }
你可以创build不同的对象:
var preVariable = query.type_of_user ? { precio_alquiler: { $lte: query.price_input_by_user }, tipo_usuario: query.type_of_user } : { precio_alquiler: { $lte: query.price_input_by_user } };
如果你有很多这些领域,那么这可能比使用条件更好:
var preVariable = { precio_alquiler: {$lte:query.price_input_by_user}, tipo_usuario: query.type_of_user, //... more }; // Remove the undefined fields for (var prop in preVariable) { if (preVariable[prop] === undefined) delete preVariable[prop]; }