如何通过 ObjectId 的部分查找文档?
How to find document by parts of ObjectId?
出于某种原因,我使用 MongoDB 本机 ObjectId 作为我的应用程序的票据标识号的主键。是否可以搜索包含 ObjectId 部分的文档?
例如:我有文件:
[
{_id: ObjectId("577f8e6537e4a676203c056a")},
{_id: ObjectId("577f8ee437e4a676203c0577")},
{_id: ObjectId("577f8f3d717b6fdd22a1684c")}
]
我想通过 _id
包含“0577”来查询它 returns
{_id: ObjectId("577f8ee437e4a676203c0577")}
我以前试过正则表达式。它返回 []
db.transaction.find({_id: /0577/i}) ---> return 0
db.transaction.find({_id: {$regex: /0577/, $options: "i"}}) ---> return 0
我想你可以这样使用 $where
:
db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })
出于某种原因,我使用 MongoDB 本机 ObjectId 作为我的应用程序的票据标识号的主键。是否可以搜索包含 ObjectId 部分的文档?
例如:我有文件:
[
{_id: ObjectId("577f8e6537e4a676203c056a")},
{_id: ObjectId("577f8ee437e4a676203c0577")},
{_id: ObjectId("577f8f3d717b6fdd22a1684c")}
]
我想通过 _id
包含“0577”来查询它 returns
{_id: ObjectId("577f8ee437e4a676203c0577")}
我以前试过正则表达式。它返回 []
db.transaction.find({_id: /0577/i}) ---> return 0
db.transaction.find({_id: {$regex: /0577/, $options: "i"}}) ---> return 0
我想你可以这样使用 $where
:
db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })