2013-07-17 47 views
1

我正在使用Node,MongoDB和Mongoose。我檢查了setupdate上的MongoDB文檔。我已經搜索了一個多小時,並且發現了圍繞我的問題跳舞的主題,但是沒有任何明確的說法。 下面的查詢更新了正確的字段,但它也完全刪除了我沒有指定的數組中的其他字段。Mongodb更新查詢刪除除命令中指定的字段外的所有數組字段

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") } 
}, 

回答

3

您可以更新的userCreatedtime財產通過使用點符號單獨留下其他屬性:

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