sql >> データベース >  >> NoSQL >> MongoDB

PyMongoを使用して、あるデータベースから同じサーバー上の別のデータベースにコレクションをコピーするにはどうすればよいですか?

    多くの混乱と魂の探求の後、私は最終的にこれをPythonの辞書が順序付けされていない(少なくとも3.6より前)とMongoDBが順序付けられたBSON辞書を期待していることを追跡することができました。

    注文方法で指摘されているようにOrderedDictを使用するpymongoの辞書? これを解決する:

    >>> from collections import OrderedDict
    >>> client.admin.command(
        OrderedDict([('renameCollection','db1.coll2'), ('to','db2.coll2')]))
    {u'ok': 1.0}
    

    もう1つの方法は、SONを使用することです。 BSONからのオブジェクト。

    >>> import bson
    >>> client.admin.command(
        bson.son.SON([('renameCollection','db1.coll2'), ('to','db2.coll2')]))
    {u'ok': 1.0}
    

    もう1つのアプローチは、eval()を使用してJavascriptをMongoDBに渡すことです。 機能:

    >>> client.admin.eval(
        "db.runCommand({'renameCollection':'db1.coll2', 'to':'db2.coll2'})") 
    {u'ok': 1.0}
    

    生のJavascriptバージョンはPythonicが少ないと思いますが、MongoDBシェルを起動せずにMongoDB機能をテストできるので便利です。また、PyMongo StackOverflowの質問であまり言及されていないので、ここに含める価値があると思いました。




    1. RailsにYAML構成ファイルをロードするときにエラーが発生しました

    2. mongo3.4.1に単純な読み取り/書き込みユーザーを追加します

    3. マングースを介してdb.eval()を呼び出す方法は?

    4. mongoDBに画像を追加するにはどうすればよいですか?