如何在 MongoDB 中找到“$oid”而不是 _id?

How do I find "$oid" in MongoDB instead of _id?

我正在尝试在 MongoDB 中进行查找搜索,我只想 return 作为字符串的 objectId,但我得到的是:

[
  {
    "_id": {
      "$oid": "6114ffebae76283ccfb92c44"
    }
  }
[

我要:

[
  {
    "$oid": "6114ffebae76283ccfb92c44"
  }
]

这是我的查询:

db.person.find(
    { $and: [{"age":20},{"name":"Frank"}] }, {"_id":1}
)

您可以应用 $toString 来获取所需格式的 ID。

db.collection.find({},
{
  "_id": {
    $toString: "$_id"
  }
})

但是您不能使用 $oid 作为字段名称,因为它是保留关键字。

示例:https://mongoplayground.net/p/y1DsrQ-k4Hj

您可以使用聚合:

db.collection.aggregate([
  {
    $project: {
      _id: {
        $toString: "$_id"
      }
    }
  }
])

这里可以测试一下(我把_id的名字设置为id)

https://mongoplayground.net/p/xdw3PpiwYId

db.person.find({
  $and: [
    {
      "age": 20
    },
    {
      "name": "Frank"
    }
  ]
},
{
  "id": {
    $toString: "$_id"
  },
  "_id": 0
})