I would like to query a collection in a MongoDB database to find all records that contain a portion of an ObjectID. For a normal string I can use a regex like this:
db.teams.find({"some_string": /^51eed/})
But how would I do something similar on an ObjectID?
Specifically, I have a collection that looks something like this:
{ "status" : 0, "_id" : ObjectId("51e97ff613e737801d000002") }
{ "status" : 0, "_id" : ObjectId("51ee7513d1f7c57420000002") }
{ "status" : 0, "_id" : ObjectId("51eed9dd5b605af404000002") }
{ "status" : 0, "_id" : ObjectId("51eedab39108d8101c000002") }
I would like to query (in mongo) for all records where the ObjectId starts with "51eed". Your help is greatly appreciated.
You can simply do this with a range search, start at "51eed0000000000000000000"
and end at "51eee0000000000000000000"
(notice the "d" -> "e"):
db.teams.find( {
_id: {
$gte: ObjectId("51eed0000000000000000000"),
$lt: ObjectId("51eee0000000000000000000"),
}
} )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With