我正在第一次使用Mongoose,並試圖完成似乎是一項簡單的任務。我有一個包含clients
屬性的用戶文檔,其中包含一組客戶端ID。舉例來說,我的文檔如下所示:從Mongoose中嵌套數組中提取值
{
email: "[email protected]",
password: "$2a$10$xZVzMYgyoyT.biOMDrBlRe3HNHY5A6lXga6uc8b/cnIAX/khQ7ep2",
modified: ISODate("2013-01-16T00:13:56.894Z"),
created: ISODate("2013-01-16T00:13:56.894Z"),
_id: ObjectId("50f5f0c4d6bbbcc6ce000002"),
clients: [
"50f6e118e0ccf9a1e9000001",
"50f6e12be0ccf9a1e9000002"
],
__v: 0
}
我創建了一箇中間件,用於在調用remove()時刪除客戶端的依賴關係。
clientSchema.pre('remove', function(next) {
Sweepstakes.remove({client_id: this._id}).exec();
Submission.remove({client_id: this._id}).exec();
// find users with this._id present in clients, and remove from array
next();
});
現在,我只需要找出誰擁有當前客戶端ID在clients
所有用戶,刪除ID,並更新用戶。
我知道我可以很容易地查詢所有帶有id的用戶,然後循環並單獨保存每個用戶......但這似乎效率低下,我的直覺告訴我有更好的方法來完成我正在試圖做的 - 只是在文檔中找到它很難。
使用貓鼬做這件事最有效的方法是什麼?
您是否知道文檔中的[this handy operator reference](http://docs.mongodb.org/manual/reference/operators/)? – JohnnyHK
@JohnnyHK我現在做!感謝您發送我的方式。 –