3

ObjectID の一部を含むすべてのレコードを検索するために、MongoDB データベースのコレクションにクエリを実行したいと考えています。通常の文字列の場合、次のような正規表現を使用できます。

db.teams.find({"some_string": /^51eed/})

しかし、ObjectID で同様のことを行うにはどうすればよいでしょうか?

具体的には、次のようなコレクションがあります。

{ "status" : 0, "_id" : ObjectId("51e97ff613e737801d000002") }
{ "status" : 0, "_id" : ObjectId("51ee7513d1f7c57420000002") }
{ "status" : 0, "_id" : ObjectId("51eed9dd5b605af404000002") }
{ "status" : 0, "_id" : ObjectId("51eedab39108d8101c000002") }

ObjectId が「51eed」で始まるすべてのレコードを (mongo で) クエリしたいと思います。よろしくお願いいたします。

4

2 に答える 2

3

これは、範囲検索で開始し"51eed0000000000000000000"て終了するだけで簡単に実行できます"51eee0000000000000000000"(「d」->「e」に注意してください):

db.teams.find( { 
    _id: {
        $gte: ObjectId("51eed0000000000000000000"),
        $lt:  ObjectId("51eee0000000000000000000"),
    } 
} )
于 2013-07-24T14:37:47.933 に答える