首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用objectid无法从MongoDB检索Node.js中的数据

使用objectid无法从MongoDB检索Node.js中的数据
EN

Stack Overflow用户
提问于 2018-03-26 10:22:19
回答 1查看 382关注 0票数 0

当我把1家医院的objectid从邮递员转到这个程序时,它只返回empty array。但one dataobjectid相匹配。你能帮我解决这个问题吗?当我试图在控制台中调试程序时,我看到了array is empty

doctor.js:

代码语言:javascript
复制
var express = require('express');
var router = express.Router();
var app=express()
var bodyParser = require("body-parser");
var validator = require('validator');
var mongo= require('./mongoconnect')
var authentication=require('./check_authentication')
var validate = require('./validation')
var ObjectId=require('mongodb').ObjectId

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

router.post('/',function(req,res)
{
    if(validate.name(req.body.name) && validate.length(req.body.name) && validate.empty(req.body.name))
    {
        if(validate.empty(req.body.hospital_id))
        {
            mongo.find("hospital","_id",ObjectId(req.body.hospital_id),function(result1)
            {
                if(result1.length==1)
                {
                    res.send("succcess")
                }
            })
        }
    }
})

module.exports = router;

MongoDB的集合是:

医院:

代码语言:javascript
复制
{ 
    "_id" : ObjectId("5aa92df0ec6b3cc78ff88afd"), 
    "name" : "apollo_hospitals"
}
{ 
    "_id" : ObjectId("5aa92df9ec6b3cc78ff88afe"), 
    "name" : "fortis"
}

mongoconnect.js:

代码语言:javascript
复制
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
var dbo=null;
exports.connection=function()
{
    if(dbo!=null) return 

  MongoClient.connect(url, function(err, db)
    {
       if (err) throw err;
       dbo = db.db("hospital_api");
    });
}
var get = function (){
    return dbo;
}
exports.find=function(collections,key,value,callback)
{
    get().collection(collections).find({key:value}).toArray(function(err,result)
    {
        // console.log(collections)
        // console.log(key)
        // console.log(value)
        if(err) throw err;
        console.log(result)
        callback(result)
    })
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-26 16:14:38

在这里,我自己找到了解决办法。我们必须用ObjectID关键字声明New

代码语言:javascript
复制
Var some_variable = New ObjectID(_id)

之后,我们可以在任何地方使用这个id,使用那个some_variable

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49489143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档