mongo 스크립트로 파일 쓰기 작업을 수행하시겠습니까?
mongojs 스크립트에서 파일에 쿼리 결과를 쓸 수 있습니까?저는 많은 검색을 해봤지만 해결책을 찾지 못했습니다.
ex:-
cursor = db.users.find();
while(cursor.hasNext()) {
cursor.next();
// writing the cursor output to file ????<br/>
}
인쇄한 다음 출력을 리디렉션할 수 있습니다.
script.js:
cursor = db.users.find();
while(cursor.hasNext()){
printjson(cursor.next());
}
그런 다음 스크립트를 실행하고 출력을 파일로 리디렉션합니다.
mongo --quiet script.js > result.txt
http://www.mongodb.org/display/DOCS/Scripting+the+shell 단락 "스크립트 작성과 대화형/인쇄의 차이"
./mongo server.com/mydb --quiet --eval "db.users.find().forEach(printjson);" > 1.txt
mongo 쿼리 결과를 로컬 파일에 써야 할 때마다 일반적으로 사용합니다.writeFile(pathToFile, stringContents)
기능.
예: 등록된 모든 사용자의 이메일을 빨리 찾아서 마케팅 부서에 있는 친구 Jim에게 보내야 한다고 가정해 보겠습니다.
$ mongo mongodb://my-fancy-mongo-server --ssl -u fancy_username -p fancy_password
successfully connected to my-fancy-mongo-server!
> emails = db.users.distinct('email_address')
> writeFile("jims_email_list.json", tojson(emails))
아니면 짐이 CSV 파일을 기대한다면,
$ mongo mongodb://my-fancy-mongo-server --ssl -u fancy_username -p fancy_password
successfully connected to my-fancy-mongo-server!
> emails = db.users.distinct('email_address')
> writeFile("jims_email_list.csv", emails.join("\n"))
이제 짐에게 이메일 목록을 보내고 하루를 저장할 수 있습니다!
주의해야 할 중요한 것들을 위하여.writeFile
함수:
- 두 번째 인수는 문자열이어야 합니다.
- 첫 번째 인수는 존재하지 않는 파일이어야 합니다. 그렇지 않으면 오류가 발생합니다.
다음을 사용하여 기간 루프를 건너뛸 수 있습니다.forEach()
:
db.users.find().forEach(printjson);
범용 언어(Python, Ruby, Java 등)에 Mongo 드라이버 중 하나를 사용하고 CSV 등과 같은 형식으로 결과를 파일에 쓰는 것이 더 간단하지 않을까요?
업데이트: mongodump에 대한 설명서에 따르면 쿼리를 사용하여 컬렉션을 내보낼 수 있습니다.
$ ./mongodump --db blog --collection posts
-q '{"created_at" : { "$gte" : {"$date" : 1293868800000},
"$lt" : {"$date" : 1296460800000}
}
}'
그러나 해당 컬렉션을 MongoDB로 다시 가져와 작업하거나 mongoexport를 사용하여 동일한 쿼리 플래그를 사용하여 JSON 또는 CSV로 내보내야 합니다.-q
) 로서mongodump
.
구별하기 위해서는 다음과 같은 내용을 가진 script.js 파일을 만들어야 합니다.
mongo = new Mongo("localhost");
doctor = mongo.getDB("doctor");
users = doctor.getCollection("users");
cities = users.distinct("address.city");
printjson(cities);
그런 다음 콘솔 실행:
mongo --quiet script.js > result.txt
언급URL : https://stackoverflow.com/questions/8971151/file-write-operations-in-mongo-script
'programing' 카테고리의 다른 글
MongoDB에서 수집 레코드 내부의 배열을 정렬하는 방법은 무엇입니까? (0) | 2023.05.29 |
---|---|
모서리 반지름 설정 버튼 템플릿 (0) | 2023.05.29 |
IEnumberable에 두 개 이상의 요소가 있는지 효율적으로 확인하려면 어떻게 해야 합니까? (0) | 2023.05.29 |
커밋이 수행한 작업을 어떻게 표시할 수 있습니까? (0) | 2023.05.29 |
클래스의 속성 목록을 가져오는 방법은 무엇입니까? (0) | 2023.05.29 |