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

mongoimport--jsonArrayのサブドキュメントに_idを作成します

    いいえ。

    ObjectIdを生成しませんが、次の表記でObjectIdをJSONに含めることができます。

    { "test" : { "$oid" : "5519e8ac996ef7f4636bfaec" } }
    

    これにより、testというフィールドが作成されます 値ObjectId("5519e8ac996ef7f4636bfaec") 。キーの値$oid 有効なObjectIdである必要があります。

    はい、それがObjectId値を生成するために必要なものです。たとえば、Pythonドライバーを使用して小さなスクリプトを記述し、その一部としてObjectIdをインポートして生成するか、mongoimportを使用してコレクションをスキャンし、各サブドキュメントをObjectIdで更新します。

    > db.test.find()
    { "_id" : ObjectId("5519e8ac996ef7f4636bfaec"), "a" : [ { "x" : 1 }, { "y" : 2 } ] } 
    > db.test.find().forEach(function(doc) {
        for (var i = 0; i < doc.a.length; i++) {
            doc.a[i]._id = ObjectId()
        }
        db.test.update({ "_id" : doc._id }, doc)
    } )
    

    _idのように、サブドキュメントに_id/ObjectIdを設定する特別な理由がない限り注意してください。 は別のドキュメントへの参照であるため、すべてのサブドキュメントにObjectIdを配置する必要も望ましくもありません。




    1. $isolatedはマルチアップデートで変更されたドキュメントを自然な順序で読むのをやめることができますか?

    2. MongoDB/Meteorを使用して配列内の特定の要素を更新する

    3. ラグ、リード、オーバーなどのPostgreSQLのウィンドウ関数の複製

    4. MongoDBのIDに基づいて複数のコレクションからドキュメントを削除するにはどうすればよいですか?