好的,我得到了这个用户模式
const UserSchema = new mongoose.Schema({
name: String,
email: String,
password: String
});
这是一个标记,如您所见,标记知道它是用户
const MarkSchema = new mongoose.Schema({
lat: {
type: SchemaTypes.Double
},
lng: {
type: SchemaTypes.Double
},
user: {
type: ObjectId,
ref: "User"
}
});
我需要通过一个查询来了解Markers
的{{1}}到User
的{{1}}
而且我无法过滤填充内容,因为它不是联接。
所以有人有主意吗?
答案 0 :(得分:2)
//With One query, you need to go through all the records in Marks Schema.
//get the name from the request body
const Search_name = req.body.name;
MarkSchema.find({}).populate("user").exec((err,marks)=>{
if(err){
//handle
}
else{
const filteredMark = marks.filter((mark)=>{
return mark.user.name === Search_name
})
//console.log(filteredMark[0])
}
});
答案 1 :(得分:1)
您需要两个查询。一个用于用户(实际上是用户标识),然后另一个用于标记。没办法。
您应该可以将ID方便地保存在某个地方,例如在会话中吗?