Mongodb更新查询将删除除命令中指定的字段以外的所有数组字段

我使用Node,MongoDB和Mongoose。 我已经检查了设置和更新的MongoDB文档。 我已经search了一个多小时,并且发现了围绕我的问题跳舞的主题,但是没有任何明确的说法。 下面的查询更新正确的字段,但它也完全删除我没有指定的数组中的其他字段。

db.posts.update( { "_id" : { $exists : true } }, { $set : { userCreated : { "time" : new ISODate("2013-07-11T03:34:54Z") } } }, false, true ) 

这是我试图修改的模式部分:

 }, userCreated: { id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, name: { type: String, default: '' }, time: { type: Date, default: Date.now } }, 

这是什么出来的:

 }, "userCreated": { "time": { ISODate("2013-07-11T03:34:54Z") } }, 

您可以更新userCreatedtime属性,并使用点符号将其他属性单独保留:

 db.posts.update( { "_id" : { $exists : true } }, { $set : { "userCreated.time" : new ISODate("2013-07-11T03:34:54Z") } }, false, true )