Mongodb将objectId作为字符串返回

时间:2018-01-05 12:45:26

标签: mongodb mongodb-query

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返回,我需要一些建议去做。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

可以使用以下方法完成

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

有关更多方法,请参阅ObjectId