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