我是第一次与 Mongoose 合作,我正在努力完成看似简单的任务。我有一个包含clients
属性的用户文档,该属性由一组客户端 ID 组成。例如,我的文档如下所示:
{
email: "nick@movementstrategy.com",
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();
});
现在,我只需要找到所有在 中存在客户端 IDclients
的用户,删除该 ID,然后更新用户。
我知道我可以轻松地查询所有存在 id 的用户,然后循环遍历并单独保存每个用户......但这似乎效率低下,我的直觉告诉我有更好的方法来完成我正在尝试的事情要做 - 只是很难在文档中找到它。
使用 Mongoose 最有效的方法是什么?