Mongodb将objectId作为字符串返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb将objectId作为字符串返回相关的知识,希望对你有一定的参考价值。

db.getCollection('User').find({
    "userId" : ObjectId("5a141ac4048378xb52c3e5a9"),
        "userRole" : "ADMIN",
        "Id" : "1234567890"})

    result:
    {
        "userId" : ObjectId("5a141ac4048378xb52c3e5a9"),
        "userRole" : "ADMIN",
        "Id" : "1234567890"
    }

    Expecting output:
    {
        "userId" : "5a141ac4048378xb52c3e5a9",
        "userRole" : "ADMIN",
        "Id" : "1234567890"
    }

我是非常新的mongodb,他们将objectId作为String返回,我需要一些建议去做。

答案

可以使用以下方法简单地完成

db.User.find({"userId": objectId("5a141ac4048378ab52c3e5a9")}).map(
      function(doc) { 
         return { "userId": doc.userId.str}
      });

有关更多方法,请参阅ObjectId

另一答案

您可以尝试使用aggregation但是ObjectId不是字符串,它只是数字,为什么要将它呈现为字符串?

以上是关于Mongodb将objectId作为字符串返回的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB,将对象数组更改为包含其 ObjectId 的字符串数组

将 ObjectID 作为字符串导入

在 MongoDB 中存储和返回 ObjectId(MEAN 堆栈)

怎么判断mongodb objectid类型数据的值和某个字符串相等

如何 $project ObjectId 到 mongodb 聚合中的字符串值?

如何在聚合期间将mongodb子集合的objectid转换为字符串