1
我在蒙戈以下模式:MongoDB的点域更新
var OrderSchema = new Schema({
postcode: String,
...
status: {
last_check: { type: Date },
date: Date,
code: String,
postnum: String,
text: String,
class: String
},
});
我有一个函数来保存数据(旧的方式被注释掉):
function save_order(data) {
// var order = new Order(data);
// var upsertData = order.toObject();
// delete upsertData._id;
// Order.findOneAndUpdate({postcode: order.postcode}, upsertData, {upsert: true}, function (err) {
Order.update({postcode: data.postcode}, {$set:data}, function (err) {
if (err) console.log('err');
});
}
这里传递到数据实例功能:
{ postcode: 'BV123456789BY',
status:
{ last_check: 1413539153572,
code: '06',
postnum: '247431',
date: Thu Oct 16 2014 09:52:00 GMT+0300 (Восточная Европа (лето)),
text: '06. Поступило в участок обработки почты (247431) Светлогорск - 1' } }
功能设置status.class工作正常 - 它不会覆盖状况:
function setByOrderId(id, data) {
// data = {'status.class': 'danger'}
Order.update({_id: id}, {$set: data}, function (err) {
if (err) console.log('err');
});
}
问题是,当我更新状态时,status.class的值消失... 如何更新状态而不覆盖status.code?谢谢。
谢谢!有用! – 2014-10-17 12:40:51