[英]Search inside a Mongoose model with node.js and express.js
在猫鼬中,我有这个模型:
var userschema = new mongoose.Schema({
user: String,
following: [String],
followers: [String]
});
var UserModel = db.model('UserModel', userschema);
但是我不知道谁在用户内部搜索在following和followers数组内部搜索。 很容易,我能做到这一点UserModel.find({ user: req.session.user }, function(err, user){[...]})
但是这里面,我要搜索的阵列内部的特定字符串following
和followers
。 我可以使用for loop
来做到这一点,但是我想如果数组中有很多String,搜索一个字符串将会很慢,甚至是有问题的。 这可能吗?:
UserModel.findOne({ user: req.session.user }, function(err, user){
if (err) throw err;
user.findOne({ following: randomstring }, function(err, nuser){
if (err) throw err;
});
});
我认为这段代码行不通,但是也许有一种无需使用for loop
即可执行我想要的方法的方法。 任何解决方案...?
不,您不能在user
文档实例上调用findOne
。 相反,您可以做的是在主UserModel.findOne
调用中包括following
字段:
UserModel.findOne({ user: req.session.user, following: randomstring },
function(err, user){ ...
在回调中, user
只可以设置当用户在跟踪randomstring
。
当然,您也可以使用array.indexOf
轻松在代码中搜索数组:
if (user.following.indexOf(randomstring) !== -1) {
// user is following randomstring
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.