我如何使用Node.js / Express从MongoDB中将数据提取为对象而非数组?

我正在学习MongoDB和Node.js. 当我试图制作小型数据库时,遇到了一个问题。 数据的结果显示为数组,而不是对象。

我想做什么:将数据的结果显示为对象。

数据: [{"_id":"59e06e1dbbeee5a09e8fb46b","id":"123","name":"Dog chew toy","price":10.99},{"_id":"59e06e1dbbeee5a09e8fb46c","id":"456","name":"Dog pillow","price":25.99}]

当我inputlocalhost:3000/findToy?id=123 ,显示下列数据。

[{"_id":"59e06e1dbbeee5a09e8fb46b","id":"123","name":"Dog chew toy","price":10.99}]

数据是数组。 但是我想把它看作是下面的对象。

{"_id":"59e06e1dbbeee5a09e8fb46b","id":"123","name":"Dog chew toy","price":10.99}

我怎样才能做到这一点?

index.js

 var express = require('express'); var app = express(); app.set('view engine', 'ejs'); var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true})); app.use(bodyParser.json()); var Animal = require('./Animal.js'); var Toy = require('./Toy.js'); var router = express.Router(); app.get('/findToy?:id', (req, res) => { var query = {}; if(req.query.id) { query.id = {$regex: req.query.id }; } if(Object.keys(query).length == 0){ res.json({}); } Toy.find(req.query.id,(err, toys) => { if(err) { res.type('html').status(500); res.send('Error:' + err); } else { res.json(toys); console.log(toys) } }) }); app.listen(3000, () => { console.log('Listening on port 3000'); }); module.exports = app; 

您可以使用findOne方法而不是find() findOne文档