私はMongoDBとNode.jsを学んでいます。私は小さなデータベースを作ろうとしていますが、問題が発生しました。データの結果は、オブジェクトではなく配列として表示されます。Node.js/Expressを使用してMongoDBから配列ではなくオブジェクトとしてデータを抽出するにはどうすればよいですか?
私がしたいこと:データの結果をオブジェクトとして表示します。
データ:私はlocalhost:3000/findToy?id=123
を入力すると[{"_id":"59e06e1dbbeee5a09e8fb46b","id":"123","name":"Dog chew toy","price":10.99},{"_id":"59e06e1dbbeee5a09e8fb46c","id":"456","name":"Dog pillow","price":25.99}]
、以下のデータが示されています。
[{"_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メソッドを使用することができます。 – aaayumi