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

pymongoを使用してMongoDBから1つのコレクションをコピーし、別の空のコレクションに貼り付けるにはどうすればよいですか?

    コード例の問題は、find()です。 データベースカーソル を返します コレクション内のすべてのドキュメントではなく、コレクションに追加します。したがって、removeすると homeからのすべてのドキュメント コレクションの場合、カーソルは空のコレクションも指します。

    コレクションを同じサーバー内の別のコレクションにコピーするには、 MongoDBAggregation> 演算子 $ match および $ out

    pipeline = [ {"$match": {}}, 
                 {"$out": "destination_collection"},
    ]
    db.source_collection.aggregate(pipeline)
    

    サンプルコードを使用して、 あなたができる

    source = db["source_collection"]
    destination = db["destination_collection"]
    
    # Remove all documents, or make modifications. 
    source.remove({}) 
    
    # Restore documents from the source collection.  
    for doc in destination: 
          source.insert(doc)
    # or instead you can just use the same aggregation method above but reverse the collection name. 
    

    db.collection.copyTo() MongoDBv3.0以降は非推奨になりました。

    別のMongoDBサーバーにコピーする場合は、を利用できます。 db.cloneCollection() 。 PyMongoでは、次のようなコマンドになります。

    db.command("cloneCollection", **{'collection': "databaseName.source_collection", 'from': "another_host:another_port"})
    

    全体的な目標によっては、MongoDBバックアップメソッド が見つかる場合があります。 使える。



    1. Redisサーバーで利用可能な合計接続数または最大接続数はいくつですか?

    2. Redisのすべてを削除するにはどうすればよいですか?

    3. インデックスを使用していないクエリやmongodbで遅いクエリを見つける方法

    4. MongoDBの切断エラーを処理する方法