Node.js Mongoose-查找包含子文档引用的文档
我有两个模型Node.js Mongoose-查找包含子文档引用的文档,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有两个模型 var locationSchema = mongoose.Schema({ name: String, users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] }); var userSchema = mongoose.Schema({ name: String, email: String }); 我想得到所有的位置,有一个特定的用户
var locationSchema = mongoose.Schema({
name: String,
users: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}]
});
var userSchema = mongoose.Schema({
name: String,
email: String
});
我想得到所有的位置,有一个特定的用户。例如,使用以下数据
Location Users
A [1,2,3]
B [1,4,5]
C [6]
比如说,我想找到所有有用户#1的位置。我试过跟踪,但没有成功
var locationModel = mongoose.model('Location', locationSchema);
locationModel.find({
users : { $in: user }
});
locationModel.find({
'users._id' : user._id
});
locationModel.find({
'users.$oid' : user._id
});
locationModel.find({
'users.id' : user._id
});
有什么想法吗?似乎是对的,但不幸的是,这家伙使用的是猫鼬模型,所以它没有嵌入。请参见第一个模式定义。文档在另一个集合中。@zPhiNGpHoNG这可能适用于
\u id
,但您可能需要研究它是否适合您的用例。如果你能做到这一点,那么从你的用户模式中查询相关信息就会容易得多。谢谢,尼尔。但如果我使用嵌入式文档,它将生成重复的数据。我宁愿不去。
locationModel.find({
users : { $in: [some_user_id] }
});