我如何从Node.js中的mongodb获取与问题相对应的特定字段

时间:2019-02-25 08:49:08

标签: node.js mongodb

我正在尝试创建一个rest api,以从mongo db中获取与该问题相对应的答案。但是,我是mongo的新手,所以有什么方法可以根据数据库中的特定问题对用户做出响应。

这是我的代码:

var express = require("express");
var app = express();
var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/questionandanswer");
var nameSchema = new mongoose.Schema({
    question: String,
    answer: String
});
var User = mongoose.model("User", nameSchema);


app.get("/getanswer",function (req, res)  {
   User.find({}).then(eachOne =>{
       res.json(eachOne);
   })
});

app.post("/addquestion", (req, res) => {
    var myData = new User(req.body);
    myData.save()
        .then(item => {
            res.send("question saved to database");
        })
        .catch(err => {
            res.status(400).send("Unable to save to database");
        });
});
var port=process.env.port || 5005;
app.listen(port, () => {
    console.log("Server listening on port " + port);
});

这是我的数据库映像文件: mongodb database

我的代码向我返回了所有存储的答案,但是我只想要特定问题的答案。

1 个答案:

答案 0 :(得分:0)

您可以使用特定的ID或问题

 User.find({"question" : "how are you"}).then(eachOne =>{
       res.json(eachOne);
   })

User.find({"_id" : ObjectId("5c73....7f")}).then(eachOne =>{
           res.json(eachOne);
       })