我正在尝试创建一个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
我的代码向我返回了所有存储的答案,但是我只想要特定问题的答案。
答案 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);
})