Как найти документ по частям ObjectId?

По какой-то причине я использую собственный ObjectId MongoDB в качестве первичного ключа для идентификационного номера билета для своего приложения. Можно ли искать документы с частями 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

person DennyHiu    schedule 09.07.2016    source источник
comment
Следующий пост может дать вам больше информации stackoverflow.com/questions/25677655/   -  person Barney    schedule 09.07.2016


Ответы (1)


Я думаю, вы можете использовать $where, например это:

db.transaction.find({ $where: "this._id.str.match(/.*0577/)" })
person shA.t    schedule 09.07.2016