如何通过ObjectId的部分查找文档?

Den*_*Hiu 1 mongodb objectid

出于某种原因,我使用MongoDB本机ObjectId作为我的应用程序的票证识别号码的主键.是否可以使用ObjectId部件搜索文档?

例如:我有文件:

[
    {_id: ObjectId("577f8e6537e4a676203c056a")},
    {_id: ObjectId("577f8ee437e4a676203c0577")},
    {_id: ObjectId("577f8f3d717b6fdd22a1684c")}
]
Run Code Online (Sandbox Code Playgroud)

我想查询它_id包含"0577",以便它返回

 {_id: ObjectId("577f8ee437e4a676203c0577")}
Run Code Online (Sandbox Code Playgroud)

我之前尝试过正则表达式.它回来了[]

db.transaction.find({_id: /0577/i}) ---> return 0
db.transaction.find({_id: {$regex: /0577/, $options: "i"}}) ---> return 0
Run Code Online (Sandbox Code Playgroud)

shA*_*A.t 5

我想你可以$where像这样使用:

db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })
Run Code Online (Sandbox Code Playgroud)