2011-07-19 5 views
14

Tôi chỉ muốn chạy tập lệnh .js dựa vào cơ sở dữ liệu mongodb cụ thể, nhưng dường như không thể có cú pháp chính xác.Chỉ định cơ sở dữ liệu nào sẽ sử dụng trong kịch bản mongodb .js

echo "print(db.address.find().limit(1));" > test.js 
mongo test.js 

Làm cách nào để chọn cơ sở dữ liệu mà điều này sẽ được thực thi, tôi đã thử các kết hợp khác nhau của use foo mà không thành công.

> show dbs      
admin (empty) 
local (empty) 
foo 0.203125GB 
bar 0.203125GB 

Tôi muốn sử dụng foo trong trường hợp này.

Trả lời

18
mongo <name of db> --eval "db.runCommand(<js in here>);" 

Hoặc nếu bạn không có một kịch bản runCommand cụ thể, bạn có thể chỉ cần làm:

mongo <name of db> --eval "<js in here>;" 

Nếu bạn đang sử dụng một giá trị trả về:

mongo <name of db> --eval "db.eval('return fnName()')" 

Đối với một tập tin

mongo <name of db> some_instructions.js 
+0

Tôi làm cách nào để chỉ định tệp? tức là không đặt một cục javascript trong hàm dòng lệnh đó? – markdsievers

+0

Ở trên cho một tập tin sẽ làm việc. Tệp phải kết thúc bằng .js –

+0

Cảm ơn Chris, rất hữu ích! – markdsievers