(전재)6 MongoDB 연결
~/$ ./mongod
#
# some logging output
#
Tue Mar 9 11:15:43 waiting for connections on port 27017
Tue Mar 9 11:15:43 web admin interface listening on port 28017
출력은 여기에 멈추고 클라이언트가 27017 포트에 연결되기를 기다립니다.데이터베이스에 연결하고 명령을 보내기 시작하면, 실행 중인 작업을 계속 출력합니다.모든 MongoDB 드라이브나 Mongo 셸을 사용하여 데이터베이스에 연결할 수 있습니다.하지만 너는_아니오_브라우저를 통해 27017 포트 액세스http://localhost:27017.데이터베이스에서 HTTP 방식으로 포트에 액세스하지 않습니다.
표준 연결 문자열 형식
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
mongodb://는 현재 문자열이 표준 연결 형식임을 표시하는 필수 접두사입니다.
{{username:password@}} 선택할 수 있습니다.사용자 이름과 비밀번호를 입력하면 드라이브는 데이터베이스에 연결된 후 로그인을 시도합니다.
host1uri의 유일한 필수 항목, 데이터베이스 연결 주소입니다.
: portX 옵션.27017 포트에 기본적으로 연결됩니다.
/database는 연결을 원하는 데이터베이스 이름입니다.username:password@를 제공한 후에만 이 값이 유효합니다.지정하지 않으면 기본적으로 "admin"데이터베이스에 연결됩니다.
여러 개의 데이터베이스와 포트를 임의로 지정할 수 있습니다. 이것은replicapairs/sets에 연결하는 데 사용됩니다.
옵션은 다음과 같습니다.
connect=direct|replicaset
direct: 서버에 직접 연결합니다.여러 호스트를 지정하면 연결이 성공할 때까지 선착순으로 연결을 시도합니다.호스트가 하나만 지정되어 있으면direct는 기본값입니다.
replicaset:creplica set semantics를 사용하여 연결을 만듭니다.지정한host는 피드 목록으로 완전한 Replica set을 찾습니다.여러 host를 지정할 때 Replicaset은 기본값입니다.
replicaset=name
연결을 인증하는 Replica set의 이름을 구동합니다.connect=replicaset을 억제합니다.
slaveok=true|false
true:connect=direct 모드에서 목록의 첫 번째 서버에 대한 연결을 구동합니다. 메인 서버가 아니더라도.connect=replicaset 모드에서 드라이브는 모든 쓰기 동작을 주 노드에 보내고 모든 읽기 동작을roundrobin 순서에 따라 노드에서 나누어 줍니다.
false:connect=direct 모드에서 드라이브는 주 노드를 찾을 때까지 순서대로 모든 호스트를 시도합니다.connect=replicaset 모드에서 드라이브는 주 노드에만 연결되고 모든 읽기와 쓰기를 주 노드에 보냅니다.
safe=true|false
true: 업데이트가 성공할 때마다 getlasterror 명령을 보냅니다. (w와 wtimeout 참조)
false: 업데이트할 때마다 getlasterror 명령을 보내지 않습니다.
w=n
getlasterror에 {w:n} 명령을 보냅니다.safe=true 를 숨깁니다.
wtimeout=ms
getlasterror에 {wtimeout:ms} 인자를 추가합니다.safe=true 를 숨깁니다.
fsync=true|false
true: getlasterror에 {fsync:true} 인자를 추가합니다.safe=true 를 숨깁니다.
false: 드라이브에 fsync 파라미터를 추가하지 않습니다.
예제
기본 포트(27017)에서 실행되는 MongoDB에 연결
mongodb://localhost
기본 포트(27017)에서 실행되는 MongoDB에 연결하고 사용자 이름'fred'와 비밀번호'foobar'로 로그인합니다. 로그인 후 관리자 데이터베이스를 기본적으로 사용합니다.
mongodb://fred:foobar@localhost
기본 포트(27017)에서 실행되는 MongoDB에 연결하고 사용자 이름'fred'와 비밀번호'foobar'로 로그인합니다. 로그인 후 baz 데이터베이스를 사용합니다.
mongodb://fred:foobar@localhost/baz
Replicapair에 연결합니다. 서버가 example1에 있습니다.com, 다른 한 대는 example2.com
mongodb://example1.com:27017,example2.com:27017
이 컴퓨터에 연결된 Replica set(포트는 각각 270172701827019)
mongodb://localhost,localhost:27018,localhost:27019
세 서버에 연결된 리플리카 set은 모든 쓰기 동작을 주 노드에 보내고 모든 읽기 동작을 노드에서
mongodb://host1,host2,host3/?slaveok=true
첫 번째 서버에 연결하고 응답합니다. 리플리카 set의 한 대든지, 메인 노드든지, 노드든지.
mongodb://host1,host2,host3/?connect=direct;slaveok=true
주: 이런 종류의 연결 문자열은 어떤 서버를 선호하지만 교체할 수 있는 서버가 있을 때 사용할 수 있습니다.
안전 모드를 사용하여 본 컴퓨터에 연결하기
mongodb://localhost/?safe=true
안전 모드를 사용하여 Replica set에 연결하여 최소한 두 대의 기계에서 백업이 끝날 때까지 기다립니다. timeout 시간은 2초입니다.
mongodb://host1,host2,host3/?safe=true;w=2;wtimeout=2000
연결 풀
각 TCP 연결은 데이터베이스 스레드에 해당합니다.따라서 어떤 형태의 연결 탱크 기술을 사용하는 것을 강력히 권장합니다.다행히도 대부분의 공식 데이터베이스 드라이브가 내장되어 이 기능을 실현했다.그러나 CGI나 PHP를 사용하면 모든 새로운 요청에 대응하여 새로운 응용 프로세스를 시작할 수 있습니다. 이 경우 연결 처리에 각별히 주의해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
레코드를 업데이트하고 업데이트 전에 동일한 레코드를 삭제하는 방법(nest js & mongoDB)ID로 레코드를 업데이트하고 싶지만 업데이트 전에 동일한 레코드에 이전에 저장된 데이터를 삭제하고 싶습니다. 프로세스는 무엇입니까? 컨트롤러.ts 서비스.ts 나는 이것을 해결하기 위해 이런 식으로 노력하고 있습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.