使用mongo-2.8.0.jar,我想獲取db-reference到另一個db。但是代碼(Groovy中)
def ref = new DBRef(db,"mails",id)
println ref
版畫一樣的東西:
{ "$ref" : "mails", "$id" : "50211d8e44ae1f34b4f4b3bd" }
,並存儲在數據庫中沒有太大$分貝!
如何強制Java Mongo驅動程序保存$ db?
使用mongo-2.8.0.jar,我想獲取db-reference到另一個db。但是代碼(Groovy中)
def ref = new DBRef(db,"mails",id)
println ref
版畫一樣的東西:
{ "$ref" : "mails", "$id" : "50211d8e44ae1f34b4f4b3bd" }
,並存儲在數據庫中沒有太大$分貝!
如何強制Java Mongo驅動程序保存$ db?
Java驅動程序不支持可選的$ db字段,如MongoDB documentation中所述。並非所有驅動程序都支持$ db字段。 Java驅動程序假定該集合與存儲引用的文檔位於同一個數據庫中。
DBRef的DB對象作爲DBRef的父類DBRefBase的私有成員存儲,並且可以通過getDB()訪問。您只需調用ref.getDB()
我想讓數據庫存儲到數據庫,而不是在java代碼中使用它。如果錯過了,我會在使用Morphia嵌入引用獲取對象時發生異常:(com.google.code.morphia.mapping.MappingException:引用({「$ ref」:「mails」,「$ id」:「 5021630744ae3176f5a34968「})無法讀取) – 2012-08-08 21:10:07
Morphia正在嘗試自動檢索引用的文檔,但無法找到它。也許查詢目標數據庫以確保引用的文檔存在。當Morphia解析引用時,它將默認爲當前數據庫,除非您在$ ref字段中使用完整名稱空間指定它。嘗試「$ ref」:「dbname.mails」 – blimpyacht 2012-08-09 22:45:07