2013-10-09 59 views
1

我想用蒙戈Java驅動程序的下面的方法。\蒙戈Java驅動程序查找方法過時

db.<collection>.find(DBObject query,DBObject param,int skip,int batchSize,int option) 

,但我發現這個方法已經過時,所以還有什麼可以被使用,因爲我有興趣做通過設置首選項來讀取操作

,如果我使用以下命令:

List<ServerAddress> seeds = new ArrayList<ServerAddress>(); 
seeds .add(seed1); 
seeds .add(seed2); 

MongoClient test= new MongoClient(seeds); 

和稍後的時間,如果我做

test.setReadPreference(preference); 

莫非要設置我讀的偏好?

+0

? – Jhanvi

+0

@Jhanvi mongo-2.10.1 –

+0

正如@parvin所回答的那樣,它會爲你工作。 – Jhanvi

回答

2

您可以在多個級別上設置讀取優先級:客戶端,數據庫,集合以及最終的單個查詢。

如果設置在MongoClient讀偏好與

mongoClient.setReadPreference(secondary()); 

那麼這是默認的閱讀喜好,將被用於所有的查詢,除非另有定義。您需要確保在運行任何查詢之前在之前設置此,否則它將不會生效。

如果您在使用設置上集合的讀取偏好:

collection.setReadPreference(primary()); 

這將覆蓋您MongoClient設置,主要將默認使用訪問該集合時(見this blog post以及瞭解如何閱讀喜好在集合級別工作。

最後,可以進一步覆蓋了一些單個查詢偏好,像已被棄用,你找到了方法。

蒙戈罐子的版本是您使用該
1

DBCursorskip()batchSize()setOptions()方法。您可以按如下方式使用它們:

db.<collection>find(DBObject query,DBObject param).skip(int skip).batchSize(int batchSize).setOptions(int options); 
+0

,我更喜歡在MongoClient中設置首選項。如果可能,比我關心的是,如果我在調用getDB()之後用setReadPrefernce()重置首選項,它是否會重置首選項? –