私のユースケースは上限付きコレクションをサポートしています。そのため、既存の上限なしコレクションを上限付きコレクションに変換またはコピーしようとしています。変換/コピーが成功しました。しかし問題は、元のコンテンツに十分なレコードがないことです。
上限なしコレクション:
db.com.bigd.raw.stats()
{
"ns" : "dbname.com.bigd.raw",
"count" : 84536,
"size" : 41929856,
"avgObjSize" : 496,
"numExtents" : 9,
"storageSize" : 58441728,
"lastExtentSize" : 20643840,
"paddingFactor" : 1,
"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
"userFlags" : 1,
"capped" : false,
"nindexes" : 1,
"totalIndexSize" : 3515680,
"indexSizes" : {
"_id_" : 3515680
},
"ok" : 1
}
キャップ付きとして変換するコマンドの実行:
db.runCommand({convertToCapped:'com.bigd.raw', size:100000})
キャップ コレクション:
db.com.bigd.raw.stats()
{
"ns" : "dbname.com.bigd.raw",
"count" : 293,
"size" : 97188,
"avgObjSize" : 331,
"numExtents" : 1,
"storageSize" : 102400,
"lastExtentSize" : 102400,
"paddingFactor" : 1,
"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
"userFlags" : 1,
"capped" : true,
"max" : NumberLong("9223372036854775807"),
"maxSize" : 102400,
"nindexes" : 1,
"totalIndexSize" : 24528,
"indexSizes" : {
"_id_" : 24528
},
"ok" : 1
}
オリジナルでは 84536 だったのに対し、ここでは 293 に減少しました。
mongodump
on uncapped とmongorestore
create capped collection( )でも同じことが起こりましたdb.createCollection("com.bigd.raw", {capped : true, size :100000})
。
モンゴの使用v3.0.7
助けていただければ幸いです。