使用Mongoose搜索用户

时间:2016-06-21 12:23:56

标签: mongodb mongoose passport.js

用户拥有帐户,可以使用Comment Mongoose模型进行评论。 是否可以允许用户在文本输入中输入username并生成所有与用户相关的注释?

我一直在尝试使用db.users.find({"name"),但我不确定如何将username从输入字段传递到搜索。有什么建议?

谢谢!评论模型如下。它将每个评论与用户连接起来。

var commentSchema = new mongoose.Schema({
    body: String,
    author: {
        id: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "User"
        },
        username: String

    }
})

2 个答案:

答案 0 :(得分:1)

您必须从user name获取另一位用户输入的text box,然后将请求发送给后端,例如{uName : 'user2'}

使用请求随附的对象中的值,并在数据库中找到。

下面的内容将是后端代码: -

var uName = req.params.uName

var cursor = db.users.find({username : uName.toString()}); 

现在cursor将为您提供来自数据库的user2的记录。

答案 1 :(得分:0)

<强>前端

  

将带有查询字符串的 GET 请求发送到后端API

<form method="get" action="/comments/user" >
   <input type="text" name="username" placeholder="username">
   <button type="submit">Search</button>
</form>

返回端

  

编写API来处理 GET 请求和Mongoose Query

var app = express();

var Comment = mongoose.model('Comment', commentSchema);


app.get('/comments/user', function (req, res) {

    var query=Comment.find();

    //get the Query String here
    var filter=req.params.username;

    if(filter.length>0){

      query.where({author.username:filter});

    }

    query.exec(function (error, comment) {
           //send the result back to front-end
            res.json({ Comment: comment });
    });
});