Mongoose を使用して大量のデータを mongodb データベースに挿入しています。デフォルトで、Mongoose はすべてのサブドキュメントに _id フィールドを追加し、次のようなドキュメントが残ることに気付きました (簡潔にするために多くのフィールドを削除しました - また、各配列を 1 つのエントリに縮小しました。通常はより多くのエントリがあります)。
{
"start_time" : ISODate("2013-04-05T02:30:28Z"),
"match_id" : 165816931,
"players" : [
{
"account_id" : 4294967295,
"_id" : ObjectId("51daffdaa78cee5c36e29fba"),
"additional_units" : [ ],
"ability_upgrades" : [
{
"ability" : 5155,
"time" : 141,
"level" : 1,
"_id" : ObjectId("51daffdaa78cee5c36e29fca")
},
]
},
],
"_id" : ObjectId("51daffdca78cee5c36e2a02e")
}
Mongoose がデフォルトでこれらを追加しないようにする方法を見つけました ( http://mongoosejs.com/docs/guide.html、オプション: id を参照)。これらのフィールドをすべて削除する最良の方法を見つけることに興味があります (最上位のドキュメントに _id を残します)。私の最初の考えは、for...in
各オブジェクトで一連のループを使用することですが、これは非常に非効率的です。