2

コレクションの上限を1MBまたは300レコードのどちらか早い方にしたかったのです。

PRIMARY>db.runCommand({"convertToCapped":"cache",'size':1024*1024, 'max':300});
{ "ok" : 1 }
PRIMARY>db.cache.isCapped();
true

ここまでは順調ですね。しばらくして、コレクションが少し使用された後(新しいレコードが挿入されたなど)、再度チェックインします。

PRIMARY> db.cache.count();
513

ええと、何?前回チェックしたときは、513>300です。カウントが300を超える前に「キャッピング」が実行されたことに注意してください。

PRIMARY> db.cache.validate();
{
"ns" : "streamified.cache",
"capped" : 1,
"max" : 2147483647,
"firstExtent" : "16:7279e000 ns:streamified..tmp.convertToCapped.cache",
"lastExtent" : "16:7279e000 ns:streamified..tmp.convertToCapped.cache",
"extentCount" : 1,
"datasize" : 858104,
"nrecords" : 513,
"lastExtentSize" : 1052672,
"padding" : 1,
"firstExtentDetails" : {
    "loc" : "16:7279e000",
    "xnext" : "null",
    "xprev" : "null",
    "nsdiag" : "streamified..tmp.convertToCapped.cache",
    "size" : 1052672,
    "firstRecord" : "16:7279e0b0",
    "lastRecord" : "16:72871444"
},
"deletedCount" : 1,
"deletedSize" : 186184,
"nIndexes" : 0,
"keysPerIndex" : {

},
"valid" : true,
"errors" : [ ],
"warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",
"ok" : 1
}

私はこの出力を読むのが得意ではありませんが、上記の「最大」値は少し奇妙に見えます。それ以外は、何がうまくいかないのかわかりません...

4

1 に答える 1

4

maxオプションはconvertToCappedメソッドでサポートされていないようです。

ドキュメントはそれについて言及していません。 http://docs.mongodb.org/manual/reference/command/convertToCapped/

maxは、新しいコレクションのオプションにすぎません。

于 2012-10-04T22:57:20.693 に答える