如何按ObjectId的部分查找文档?

时间:2016-07-09 01:50:25

标签: mongodb objectid

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

例如:我有文件:

[
    {_id: ObjectId("577f8e6537e4a676203c056a")},
    {_id: ObjectId("577f8ee437e4a676203c0577")},
    {_id: ObjectId("577f8f3d717b6fdd22a1684c")}
]

我希望通过_id包含“0577”来查询它,以便它返回

 {_id: ObjectId("577f8ee437e4a676203c0577")}

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

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

1 个答案:

答案 0 :(得分:5)

我认为你可以像这样使用 $where

db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })