おそらく、コレクションにnotification: NULL
のいずれかのドキュメントが既にある可能性があります。 または、通知フィールドが設定されていないドキュメント。フィールドが設定されていない場合、それはnullと見なされます。一意のインデックスではフィールドごとに1つの値しか許可されないため、フィールドが設定されていない2つのドキュメントを作成することはできません。 sparse
を使用することで、これを回避できます。 インデックス作成中のオプション。このようなものが機能するはずです(notification
に既存のインデックスを削除した後 :
self.db_database[co_name].ensure_index(('notification'),unique=True,sparse=True)