1

2 つのデータベースに接続し、一方のドキュメントを検索し、見つかったドキュメントを他方に挿入する Mongo シェル スクリプトを作成しようとしています。このようなちょっと:

#!/bin/sh
mongo --shell --nodb <<EOF
var db1 = new Mongo( '...' );
var db2 = new Mongo( '...' );
db1.collection.findOne( {...} ).forEach( function( r ) { 
  db2.collection.save( r ) 
});

秘訣は、両方のデータベースがレプリカ セットであり、ユーザー名とパスワードが必要なことです。

new Mongo()レプリカ セットに接続し、特定のユーザーとして認証するために使用する構文は何ですか? Mongo URI ( http://docs.mongodb.org/manual/reference/connection-string/ )を使用しようとしましたが、うまくいきませんでした。

4

1 に答える 1

2

これをテストするためのレプリカ セットはありませんが、このように Mongo() コンストラクターを使用できると思います

conn = Mongo("replicasetname/host:port")

そこから、データベースを手動で取得する必要があると思います

db = conn.getDB("myDatabase")

そして認証する

db.auth(user, pass)

これはすべて、使用しているシェルのバージョンにも依存する可能性があります。最新バージョンでのレプリカ セット接続の使用に関するドキュメントが表示されないため、廃止されたのか、それとも言及されなくなったのかはわかりません。お役に立てれば。

于 2015-07-09T01:27:23.157 に答える