繁体   English   中英

使用node.js和express.js在Mongoose模型中搜索

[英]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){[...]})但是这里面,我要搜索的阵列内部的特定字符串followingfollowers 我可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM