我正在爲一個Web應用程序進行單元測試,我想做一個測試用例來查看當有人試圖獲取不可能存在的mongo文檔時,我的應用程序是否會發送相應的錯誤消息。在mongo中,是否有可能擁有一個看起來合法但不可能存在的_id?
爲了讓更多的情況下,Web應用程序發回有關基於關中蒙戈數據庫項目的_id某些項目的信息。用戶可以獲取任何項目的_id,因爲所有項目都可以向公衆查看。
我想知道的是,是有可能有可能在數據庫中查詢的_id,但它不可能存在嗎?
如果這是可能的話,我可以做一個測試情況下,將查詢蒙戈分貝和每一個保證時間發回相應的錯誤信息。現在,我正在使用分配給不再存在的項目的mongo _id。
我給這_id要求是:
- 1)它必須是一個正常_id
- 2)它必須是 作爲_id相同的字符組成的相同的長度(十六進制我假設)
- 3)它實際上可能永遠不會是一個真正的_id,mongo將分配給一個 文檔。
其值得注意的是,用戶在創建項目時永遠不能分配_id。所有_id任務正在由mongo處理。
如果它適合所有上述我會很高興。
他們只我能想到的事情是000000000000000000000000,但我不能確認這是否可以作爲一個_id或不?
嗨塞爾吉奧,謝謝你的答案。我現在已經更新了這個問題。在這種情況下,我更關心後者。知道mongo如何分配_id確實有助於爲我的測試用例提供一個_id。我真正想要的是一個_id,我可以在我的奶嘴中使用它,它總是會帶回我的錯誤消息:「帶有_id的項目沒有。」。如果_id由時間戳確定,則全零_id應該覆蓋這個。 –
@DavidOGrady「但它永遠不可能存在?」 - 再次,不要混淆這兩種情況。這個ID絕對可以存在(如果你明確插入)。只是MongoDB本身不會生成它。只要確保你明白這個區別。 –
在Web應用程序中,當用戶嘗試創建項目時,用戶不能分配_id,因此我們不必擔心顯式插入_id。感謝您的跟進。 –