基于_id字段表达MongoDB find() [英] Express MongoDB find() based on _id field

查看:213
本文介绍了基于_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)})
    .

参考: 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆