2013-07-12 2 views
1

여기 수집 또는 데시벨 수준 mongoskin에서 읽기 prefence을 정의 할 수있는 방법이 있나요은 MongoDB를 기본 nodejs 드라이버 http://learnmongodbthehardway.com/ex22.htmlmongoskin에서 읽기 기본 설정을 사용하는 방법은 무엇입니까?

var readMongo = require("mongodb").MongoClient; 

MongoClient.connect('localhost:3000/tes?readPreference=secondaryPreferred' , 

    function(err ,db){ 
     db.collection("sites").findOne(
     { 
      $or: [{'a' : e}, 
        {'a' : d}, 
        {'a' : c}, 
        {'a' : b}] 
     }, function(error, result1){ 
      if(error){ 
       console.log(error); 
      } else { 
       callback(null, result1) 
       db.close(); 
      }  
     }); 
}); 

} 

나는 현재 복제 세트와 샤딩 서버의 집합에 mongos를 실행하고 있습니다에서 샘플입니다. 나는 모든 읽기 쿼리를 복제 세트의 2 차 구성원으로 라우트해야합니다.

답변

1

를 마지막 방법은 보조 mongod에 쿼리가

그냥이

처럼 mongoskin 연결 문자열 내부 보조의 호스트와 포트를 배치 경로에있다
var mongo = require("mongoskin"); 
var database = mongo.db("mongod://username:[email protected]:port/database",{safe:true , slaveOk : true}); 

slaveOk : true은 보조 mongod가 읽기 전용 쿼리에 사용할 수 있도록 허용합니다.이 mongo가 없으면 보조에서 쿼리 할 수 ​​없으므로 오류가 발생합니다.

[Mongo error "$err" : "not master" ] 
관련 문제