0
我必須從文檔中的子模板數組中移除項目。MongoDB&Mongoose:如何在使用pull時獲取刪除項目的索引?
SubSchema = new mongoose.Schema({...})
MySchema = new mongoose.Schema({someArray: [SubSchema]})
(...)
mydoc.somearray.pull(req.body.submodel_id);
不過,我需要的是已被刪除,通知所有連接的客戶端的元素的索引。
有沒有一個優雅的解決方案,或者我必須使用_.findIndex
或類似的東西? (我想,有更糟糕的表現,因爲它不必要地遍歷數組兩次)
這仍然搜索文檔兩次,不是嗎? (一次爲拉,一次爲indexOf) 我覺得很奇怪mongoDB&mongoose不支持通過索引刪除(這可以解決我的問題) 無論如何感謝。 –
@ClaasM。不,它不搜索兩次,上述更新操作使用MongoDB的findAndModify()API查詢集合一次,{new:false}選項返回回調中原始未修改的文檔。 – chridam
我在說'IndexOf'。這似乎是沒有必要查詢someArray的submodel_id,然後使用'IndexOf'迭代someArray _again_來找到正確的索引。 –