2016-03-03 84 views
0

我想找到基於他們的身份證號碼在我的收藏中的所有元素(只有使用這個號碼的一部分用於搜索):在MongoDB中,有可能根據_id找到所有對象?

我嘗試以下,但它沒有工作:

db.collection.find({"_id":/25/}) 
+4

這是一個['ObjectId'(https://docs.mongodb.org/manual/reference/object-id/),而不是一個 「串」,所以正則表達式不適用。仍然可以使用['$ where'](https://docs.mongodb.org/manual/reference/operator/query/where/),但不可取。也沒有真正看到實用性。或許您想要在「範圍」內找到ObjectId值。 –

+0

@BlakesSeven **如果**它是'ObjectId'。 '{_id:「25」}'是一個有效的文檔,正則表達式工作正常。 –

+0

@AlexBlex,我剛測試過它不起作用 –

回答

0

它的工作原理只有_id是一個字符串

考慮一個集合:

db.test.insert([ 
    {_id:"123", val:1}, 
    {_id:"256", val:2}, 
    {_id:"125", val:3}, 
    {_id:255, val:4} 
]); 

查詢db.test.find({_id:/25/})回報只有2個文件:

{ 
    "_id" : "125", 
    "val" : 3 
}, 
{ 
    "_id" : "256", 
    "val" : 2 
} 
+0

有趣的是,在OP已經評論之後,爲什麼你會認爲這是一個答案*「@ AlexBlex,我剛剛測試過它不起作用」*。看起來更像是一次釣魚之旅。 –

+0

評論只是太長了。我可能不得不編輯這個問題來強調OPs _id不是一個字符串。 –

相關問題