我有一个名为Project
的Mongoose模型,该模型在其架构中有一个名为user
的字段,类型为mongoose.Schema.Types.ObjectId
,引用为User
(指的是{ {1}}模型。
这是User
模式的user
部分:
Project
我想找到所有具有特定“用户”值的项目。我知道用户的ObjectID,目前正在执行以下操作:
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
required: true
}
如上面的注释中所述,User.findOne({ username: "example" }, (err, projectUser) => {
if(err) throw err; // doesn't throw an error
console.log(projectUser); // logs the user object
console.log(projectUser._id); // logs 5b2949e8aac1521ca83d5750
console.log(typeof projectUser._id); // logs 'object'
Project.find({ user: projectUser._id}, (err, projects) => {
if(err) throw err; // also doesn't throw an error
console.log(JSON.stringify(projects, null, 4)); // logs '[]'
});
});
查询返回一个空数组,没有错误。 我已手动确认有3个项目属于“示例”用户,但没有一个出现。
这是Project.find
模型控制的projects
集合中的示例文档(如Mongo Compass所示):
与Mongo Project
s有点困惑吗?感谢您的帮助。
答案 0 :(得分:0)
对不起,每个人,我已经找到了我的问题的答案:我犯了一个愚蠢的错误。
在projects
集合的其他3个摘录中(未显示),username
的{{1}}被一些不同的代码插入到User
字段中user
模式,而不是Project
。这是属于用户名ObjectID
的用户的3个项目。
结果,什么也没有返回。不便之处,敬请谅解。