我确信这个问题已经得到了回答,但我不确定我在搜索中的措辞是否正确。
假设我有两个模型:项目和用户
projectSchema = {
project_name: String,
users: [user_id]
}
userSchema = {
email: String,
projects: [project_id]
}
当一个用户试图创建一个新项目时,我想检查一下该User.projects是否已经包含了一个与他们试图创建的项目同名的项目,以避免重复。我有麻烦了。我肯定 Mongoose 里有办法,但我...如果不首先生成一个包含所有用户project_id的数组并查询每个数组以找到匹配的名称,我很难找到一种简单的方法来实现这一点。
我看过很多人提到的东西,大致看起来像:
User.find({}).populate('projects').exec();
但是我不能创建一个工作的实现。
1条答案
按热度按时间a0zr77ik1#
我想出了一个解决方案。虽然这个方案并不优雅,但这是我能做的最好的了。对于任何有同样问题的人,我做了以下事情:
这会寻找具有指定名称的所有项目,然后依ID填入该项目之使用者数组中的所有使用者集合。接着,它会逐一查看所有符合的项目,并搜寻其所有使用者,以寻找符合目前使用者ID的项目。如果找到,则封装承诺解析为true。否则,解析为false。