Meteor가 실행되는 동안 다른 클라이언트에서 Meteor의 MongoDB에 어떻게 액세스합니까?
Meteor가 실행되는 동안 Python 클라이언트에서 Meteor의 MongoDB에 액세스하고 싶습니다 .
Meteor의 데이터베이스가 잠겨 있기 때문에 mongod를 시작할 수 없습니다.
다른 클라이언트에서 데이터베이스에 어떻게 액세스합니까?
이 meteor
명령은 깨끗한 방법을 제공합니다. 실행중인 mongod의 URL을 얻으려면 :
meteor mongo -U
파이썬에서 파싱 할 수 있습니다.
Meteor는 meteor
명령 을 실행할 때 포트 3002에서 mongod를 시작하고 mongo 데이터 파일을.meteor/local/db
의 출력은 ps aux | grep 'mongod'
meteor가 사용하는 mongod 명령을 보여줍니다.
/usr/local/meteor/mongodb/bin/mongod --bind_ip 127.0.0.1 --smallfiles --port 3002 --dbpath /path/to/your/project/.meteor/local/db
따라서 그에 따라 mongo 클라이언트를 연결하십시오. 파이썬에서 :
>>> import pymongo
>>> con = pymongo.Connection(host='127.0.0.1', port=3002)
>>> con.database_names()
[u'meteor', u'local']
업데이트 : 불행히도 이런 식으로 mongo에서 직접 변경하면 앱에 실시간으로 반영되지 않지만 변경 사항은 전체 페이지 (재)로드에 반영됩니다.
사용 유성 배포 지침
명령은 다음과 같습니다.
PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
다음을 사용하여 서버 측 코드 내에서 찾을 수도 있습니다.
process.env.MONGO_URL
실행할 때이 환경 변수를 설정하지 않아도 기본값으로 설정됩니다. 이것이 내부적으로 발견되는 방법 인 것 같습니다 (packages / mongo / remote_collection_driver.js)
하나는 meteor mongo -U
기본 도메인 / ip 및 db-name을 재구성하는 것처럼 보이지만 파일에 저장된 포트를 사용합니다.
이것을 서버 폴더의 아무 곳에 나 넣고 명령 줄에서 읽을 수 있습니다.
console.log('db url: ' + process.env.MONGO_URL);
테스트 데이터베이스를 사용하고 라이브 데이터를 덮어 쓰지 않는 셀레늄 테스트를 다시 확인하도록 웹 페이지를 표시하도록 설정했습니다.
그리고 여기 Mongo URI 및 Mongo 데이터베이스를 가져 오는 쉘 스크립트 :
#!/bin/bash -eux
read -s -p "Enter Password: " password
cmd=$(meteor mongo --url myapp.meteor.com << ENDPASS
$password
ENDPASS)
mongo_uri=$(echo $cmd | cut -f2 -d" ")
mongo_db=$(echo $mongo_uri | cut -d/ -f 4)
#my_client_command_with MONGODB_URI=$mongo_uri MONGO_DB=$mongo_db
````
업데이트 10 초 지연 : MongoDB oplog를 추적하세요! 여기에 방법에 대한 자세한 정보가 있습니다.
http://meteorhacks.com/lets-scale-meteor.html
스마트 컬렉션을 설치하고 사용하십시오 (Meteor.Collection 대신 Meteor.SmartCollection을 사용하여 컬렉션 인스턴스화). 업데이트가 본질적으로 즉각적임을 알 수 있습니다.
'developer tip' 카테고리의 다른 글
Java Jar 파일 : 자원 사용 오류 : URI가 계층 적이 지 않습니다. (0) | 2021.01.11 |
---|---|
파이썬에서 고정 크기 형식의 문자열을 어떻게 만듭니 까? (0) | 2021.01.11 |
PowerShell로 문자열을 분할하고 각 토큰으로 작업 수행 (0) | 2021.01.11 |
Android에서 파일 생성 시도 : 열기 실패 : EROFS (읽기 전용 파일 시스템) (0) | 2021.01.11 |
bitbucket으로 푸시 할 수 없습니다. 권한이 거부되었습니다 (공개 키). (0) | 2021.01.11 |