数据库
首页 > 数据库> > javascript – 来自MLab的MongoDB:通过ID找不到工作

javascript – 来自MLab的MongoDB:通过ID找不到工作

作者:互联网

我一直在努力通过MongoDB中的ID过滤我的记录而没有成功.问题在于$oid

在MLAB上,我的记录如下:

    {
    "_id": {
        "$oid": "57603891dcba0f7813102b3f"
    },
    "age": 10,
    "name": "john",
    "answer": "3",
}

我的剧本如下:

     mycollection.find({_id:"57603891dcba0f7813102b3f"},{},{},function(err, docs) {
    console.log("record"+docs);
    docs.each(function(err, doc) {
      if(doc) {
        console.log("record"+doc);
      }
    });
  });

它有什么问题?任何想法的家伙?

解决方法:

您的脚本的问题是您正在尝试将普通字符串“57603891dcba0f7813102b3f”与ObjectId字符串进行比较

{
        "$oid": "57603891dcba0f7813102b3f"
},

如果您使用的是Node.Js,那么您可以执行此操作

1)从mongodb包导入ObjectId api

 var ObjectId = require('mongodb').ObjectID;

2)在查询中将普通字符串转换为ObjectId

mycollection.find({_id:ObjectId("57603891dcba0f7813102b3f")},{},{},function(err, docs) {...}

顺便说一句,@ titi23发布的答案也有效.但我发现ObjectId转换是一种更清洁的方法.

标签:javascript,mongodb,mlab
来源: https://codeday.me/bug/20190714/1458499.html