基于_id字段表达MongoDB find() [英] Express MongoDB find() based on _id field
本文介绍了基于_id字段表达MongoDB find()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
因此,在我的快速应用中,我试图基于_id字段来查找().
So In my express app, I am trying to find() based on my _id field.
在下面查看我的MongoDB记录.
{
"_id": {
"$oid": "58c2a5bdf36d281631b3714a"
},
"title": "EntertheBadJah",
"subTitle": "Lorem ipsum dolor",
"thmbNailImg": "",
"headerImg": "",
... BLAH BLAH BLAH
当我使用.find( _id: id )
时,
我的id
参数= 58c2a5bdf36d281631b3714a
.
When I use .find( _id: id )
,
my id
param = 58c2a5bdf36d281631b3714a
.
我将如何转换/使用它来获取我的MongoDB记录?
How would I convert / use this to get my MongoDB record?
这是我的特快电话:
//GET ARTICLE
app.get('/api/article', (req, res) => {
var id = req.query.id
var article = [];
db.collection('articles')
.find( _id: id )
.then(result => {
article = articles.concat(result);
}).then(() => {
res.send(article);
}).catch(e => {
console.error(e);
});
});
任何帮助或建议,我们都会感激不尽.预先谢谢你.
Any help or advice is appreciated. Thank you in advance.
(我的修订查询)
//GET ARTICLE
app.get('/api/article', (req, res) => {
var id = req.query.id
db.collection('articles').findOne({
"_id.$oid": id
}, function(err, article) {
res.send(article);
console.log(article)
});
});
文章当前返回NULL.
article is Currently returning NULL.
推荐答案
db.collection('articles')
.find( {"_id.$oid": id} )
.
或更具体:
db.collection('articles')
.findOne( {"_id.$oid": id} )
.
在查询
var ObjectID = require('mongodb').ObjectID;
db.collection('articles')
.findOne( {"_id.$oid": new ObjectID(id)})
.
参考: 查看全文