请注意以下代码,它展示了一个包含两个数组的模式,其中一个被配置为类型:
这里是代码:
我该如何防止b:{}被移除?
编辑:
仅在Array中存在embeddedDocument时才会发生这种情况。
[
mongoose.Schema.Types.Mixed
]
其中一个被配置为类型:
[
{
value: mongoose.Schema.Types.Mixed
}
]
这里是代码:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var schema = new mongoose.Schema({
withSchema: [{
value:mongoose.Schema.Types.Mixed}
],
withoutSchema: [mongoose.Schema.Types.Mixed],
} , {minimize: false});
var Tweak = mongoose.model('tweak', schema );
我使用相同的数据更新文档:
var data = {
"withSchema" : [ { "value": { a:"221", b:{} } } ],
"withoutSchema" : [ { "value": { a:"221", b:{} } } ]
}
Tweak.findByIdAndUpdate("545680170960023a185ea77e", data, function(err, doc){
console.log(doc);
//{
// "withSchema" : [ { "value": { a:"221" } } ],
// "withoutSchema" : [ { "value": { a:"221", b:{} } } ]
//}
});
我该如何防止b:{}被移除?
编辑:
仅在Array中存在embeddedDocument时才会发生这种情况。