这对你们来说是一个简单的问题...我想知道在通过ID查询用户后,如何获取“跟随者”内部的特定ID。换句话说,我要通过其ID搜索用户,然后要检查关注者内部的ID。 例如:我在一个变量“ x”中保存了一个ID,并且我想检查此ID“ x”是否在followers数组内。
模型如下:
var UserSchema = new mongoose.Schema({
followers: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
]
});
module.exports = mongoose.model("User", UserSchema);
我正在使用的代码是这样的:
User.findById(req.params.id,'followers', function(err,name){
if(err){
console.log(err)
} else{
console.log(name);
}
});
看起来我可以打印用户ID和“跟随者”内部的ID,但是我无法查看所需的ID是否在“跟随者”数组内。有人可以帮助我吗?
谢谢您的关注!
答案 0 :(得分:0)
我认为您需要创建嵌套的for循环,因为您根据用户架构有一个用户数组,每个用户都有一个关注者数组,并且要解决此问题,您需要为用户架构创建for循环,并在该循环内部将遍历该用户内部的所有关注者,并检查您拥有的ID是否等于其ID。
答案 1 :(得分:0)
由于followers
是ID数组(文档引用),因此,如果查询是针对单个追随者匹配项,则可以使用{followers: SOME_ID}
的简写形式;如果查询是单个数组,则可以使用{ {1}}。有关更多信息,请参见Mongo documentation。
例如,使用匹配的数组如下所示。
{followers: {$all: [SOME_ID, SOME_OTHER_ID]}}