2017-04-26 74 views
0

我試圖用貓鼬在車型使用的鑑別繼承功能從Mongo的數據庫中讀取,但在DB文件都被其他服務(使用Java蒙戈插入司機)不使用貓鼬或其鑑別器。當我嘗試從數據庫讀取數據時,所有使用子類模型(使用鑑別器函數的那些模型)的查詢都會返回空數組。我想這是因爲貓鼬希望這些文檔包含一個鑑別鍵,但是插入這些文檔的服務沒有鑑別鍵的知識,因此不會將它們設置在mongoDB文檔中。如何使用貓鼬鑑別查詢的MongoDB集合

如何創建我的模型,並使用鑑別功能,使得他們仍然可以查詢這些文件被其他服務插入?

對於更多的上下文,我想使用鑑別器,因爲繼承允許我乾淨地構造我創建的模型的字段並定義模型特定的靜態方法,並且它可以讓我不寫重複的代碼。如果有更好的方法來實現這些目標而不使用貓鼬的內置鑑別器模式,請分享!

回答

0

按照documentation

的方式貓鼬告訴不同 鑑別模型之間的差異是由「鑑別密鑰」,這是由 默認__t。 Mongoose將一個名爲__t的String路徑添加到您的模式中,該路徑使用 來跟蹤哪個鑑別器是該文檔的實例。

此外,貓鼬還將帶鑑別符的文檔保存到單個集合中。

因此,爲了能夠訪問文檔,您需要保存__t參數,並檢查是否將具有相同鑑別符的模式保存到單個集合中