0

次のようなスキーマを定義します

{

    'info' : {
        'type' : 'dict',
        'unique' : True,
        'schema' : {
            'propertyA' : {'type':'string'},
            'propertyB' : {'type':'string'},
            'propertyC' : {'type':'string'}

        }
    },

    'others' : {'type':'string'}
}

次に、次のドキュメントを 2 回投稿します。1 回目は OK を返し、2 回目は「一意ではないエラー」を返します。

[
  {
    "info" : {
      "propertyA" : "a",
      "propertyB" : "b",
      "propertyC" : "c"
    },
    "others" : "other things"
  }
]

しかし、次のようにドキュメントリストを投稿すると:

[
  {
    "info" : {
      "propertyA" : "a",
      "propertyB" : "b",
      "propertyC" : "c"
    },
    "others" : "other things"
  },
  {
    "info" : {
      "propertyA" : "a",
      "propertyB" : "b",
      "propertyC" : "c"
    },
    "others" : "other things"
  }
]

両方のドキュメントがデータベースに挿入されます。

なぜ彼らは異なる結果を持っているのですか?

4

1 に答える 1

0

これは、2 番目のシナリオでは、MongoDB の一括挿入機能を利用して、両方のドキュメントがデータベースへの 1 回のループバックで保存されるためです。したがって、2 番目のドキュメントがデータベースに対して検証されるとき、重複はまだ見つかりません。

最初のシナリオでは、2 つの個別の保存操作を実行しているため、2 番目のシナリオは複製と一致します。

于 2014-05-16T14:04:43.347 に答える