1

MongoDBのドキュメントによると、アレイの成長は遅いため、可能な限り最小化または排除する必要があります。私は一連のサブドキュメントを持っています(これらはブログ投稿へのコメントだとしましょう):

comments = [ {name : "E.D.", date : "2013.03.20", text : "awesome stuff!"},
             {name : "J.L.", date : "2013.03.21", text : "tl;dr"} ]

かなり予想通りに成長するので、効率を上げるために最初から事前に入力しておく必要があると思います。しかし、サブドキュメント自体を作成する必要がありますか?

### I Version
comments = [ { },
             { } ]

または、配列をゼロで初期化するだけで十分ですか?

### II Version
comments = [ 0,
             0 ]

(もちろん、訪問者が実際に残したコメントの数を追跡する必要があります。)

「コメント」のサイズは最大数KBですが、ドキュメントの増加に影響はありますか?たぶん、最大許容テキストと同じサイズのプレースホルダーを作成する必要がありますか?

### III Version
comments = [ {name : "Name Surname", date : "1970.01.01", text : "this is a placeholder"},
             {name : "Name Surname", date : "1970.01.01", text : "this is a placeholder"} ]
4

1 に答える 1

0

空のハッシュまたはゼロを事前に入力しても意味がありません。実際のデータを挿入すると、ドキュメントが展開されます。

3番目のバージョンはもっと似ています。実際のコメントを挿入するときにダミーデータをクリアするのは簡単ではないようですが。

または、十分な大きさのテキストを特別なフィールドに挿入し、後でコメントを挿入したときに削除することもできます。このようなもの:

db.posts.insert({
  comments: [],
  padding: 'lorep ipsum ... x N'
})


db.posts.update(query, 
                {$push: {comments: comment_data},
                 $unset: padding})
于 2013-03-20T09:25:28.827 に答える