sql >> データベース >  >> NoSQL >> MongoDB

MongoDB-重複するエントリで_idインデックスがエラーをスローしないのはなぜですか?

    _idを更新しようとしているだけなので、最初のケースで重複インデックスエラーを表示する理由はありません。 およびname 同じレコードの同じ値のフィールド。

    やってみるなら

      db.foo.update({ _id: '1098'}, { _id: 'doe123', name: 'John Doe'}, { upsert: true});
    

    クエリが異なる_idでレコードを更新しようとしているため、エラーが発生します 既存の_idを使用 価値。

    2番目のケースでは、最初にnameでレコードを作成しました フィールドで、別のレコードの同じ名前を更新しようとすると、nameとしてエラーが発生します 一意のインデックスです。

    編集:-

    お試しの場合

     db.foo.insert({ _id: 'doe123', name: 'John Doe'});
    

    この場合、すでに存在するレコード、つまり_idを挿入しようとしているため、エラーが発生します。 は一意であり、同じ_idでもう1つのレコードを作成しようとしています 価値。




    1. MongoDB-Javaドライバー:挿入が失敗したときに例外をキャッチ

    2. マングースを使用してmongodbに2日間を含める間にmongodbからデータを取得する方法

    3. redis/php-resqueを使用した同時ImageMagickリクエストの最適化

    4. .quit()を使用してノードredisクライアントインスタンスを終了する必要がありますか?