出于某种原因,我使用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
答案 0 :(得分:5)
我认为你可以像这样使用 $where
:
db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })