이상한 mongodb 및 mongoose 오류: 마스터 및 slaveOk=false 오류가 아닙니다.
node.js 앱에서 이상한 오류가 발생합니다.
not master and slaveOk=false code 13435
mongoose 4.0.2를 사용하여 mongodb 3.0.1을 히트시키는 findOne 쿼리를 하고 있습니다.쿼리가 오늘 이전에 작동했습니다.
이 오류는 무엇입니까?나는 그들의 gb당 표준 요금제로 mongohq를 실행하고 있습니다.
즉, 복제본 집합의 보조 노드에서 읽으려고 시도하는 것이며 기본적으로 기본 노드에서만 읽을 수 있습니다.
를 실행하여 보조 노드가 읽기를 수락하도록 허용할 수 있습니다.rs.slaveOk()
해당 보조 노드에 연결된 몽고 쉘에서.노드가 아직 기본 노드와 동기화되지 않은 경우 오래된 데이터를 읽을 수 있으므로 보조 노드의 읽기를 허용하지 않는 것이 좋습니다.
업데이트: Janusz Slota의 논평이 지적했듯이,rs.slaveOk()
더 이상 사용되지 않습니다.사용하다rs.secondaryOk()
그러나 이는 여전히 권장되지 않습니다.다음은 rs.secondaryOk()에 대한 설명서입니다.
저는 Mongoose로 MongoDB에 연결하기 위해 URI myNode.js 애플리케이션이 사용하던 URI를 수정하는 것만으로 이 문제를 해결했습니다.
이 오류가 발생했을 때 내 URI는
mongodb://user:password@host:port/datatabase
,
마스터 및 슬레이브 OK=false가 아닌 오류가 발생했습니다.
그런 다음 복제 세트 정보를 추가하기 위해 URI를 변경했고 URI는 다음과 같이 되었습니다.
mongodb://user:password@host:port,replicaSetHost:replicaSetPort/database?replicaSet=rs-someServer
.
이 구성이 일반적인 패턴인지는 모르겠습니다. MongoLab에서 사용하는 구성이기 때문입니다. MongoLab에서는 이 구성을 사용합니다. MongoLab에서는 데이터베이스가 호스팅됩니다.그러나 URI에 복제 세트 정보도 추가하여 문제를 해결할 수 있습니다.
(IBM의 mongoDB 인스턴스에 연결하여 발생한) 문제를 해결했습니다.
mongoose.connect('mongodb://host1:port1/?replicaSet=rsName');
보낸 사람: https://mongoosejs.com/docs/connections.html#replicaset_connections
마스터 노드에 장애가 발생하여 슬레이브 노드에서 읽기를 시도하고 있지만 기본적으로 읽기 소스는 기본 노드로만 설정되어 있습니다.
연결 문자열 끝에 다음과 같은 옵션을 연결할 수 있습니다.?readPreference=secondary
2차 연결을 사용할 것입니다.
사용할 수 있습니다.readPreference
연결 문자열에 연결합니다.
mongodb://localhost:27017/?readPreference=secondary&directConnection=true&ssl=false
기본 설정을 사용하여 연결할 수 없는 경우 보조 기본 설정을 사용할 수 있습니다.
이것은 mongoose 4.x 및 mongodb 3.0.x에서 작동합니다.
model.find().read('secondary').....
http://mongoosejs.com/docs/api.html#query_Query-read 을 참조하십시오.
언급URL : https://stackoverflow.com/questions/30088833/strange-mongodb-and-mongoose-error-not-master-and-slaveok-false-error
'programing' 카테고리의 다른 글
스토리보드를 사용하여 UIView를 마스킹하고 둥근 모서리를 표시하시겠습니까? (0) | 2023.05.09 |
---|---|
XAML에서 매개 변수화된 생성자 호출 (0) | 2023.05.09 |
POI 라이브러리를 사용하여 Excel 파일의 행 수를 가져오는 방법은 무엇입니까? (0) | 2023.05.09 |
postgre에서 왼쪽으로 0 채우기SQL (0) | 2023.05.04 |
View Model이 양식을 닫는 방법을 선택합니다. (0) | 2023.05.04 |