Venue.update({_id : venue.id},
{
name : venue.name,
'contact.phone' : venue.contact.formattedPhone
}, {upsert: true}).exec()
在此代码中,如果场地没有电话,则不会进行Upsert操作。我怎么能避免这个?我想更新该字段,如果它不为null,但如果为null,则不要包含该字段。
编辑:
Venue.update({_id : venue.id},
{
name : venue.name,
'contact.phone' : ((!venue.contact.formattedPhone)?
'' : venue.contact.formattedPhone)
}, {upsert: true, safe:false}).exec()
此代码工作正常,但这次,'手机'字段是''。我想要的是,如果字段未定义则隐藏字段。
答案 0 :(得分:0)
以编程方式构建update
对象,以便在未提供时不包含'contact.phone'
:
var update = {
name : venue.name
};
if (venue.contact.formattedPhone) {
update['contact.phone'] = venue.contact.formattedPhone;
}
Venue.update({_id : venue.id}, update, {upsert: true, safe:false}).exec();