10

エンティティにフィールドがあり、存在する必要がありますが、必ずしも一意である必要はありません。Mongo でこの制約を強制する方法はありますか?

mongo コレクションはスキーマレスであり、コレクションが持つことができる唯一のスキーマはインデックス スキーマであることを理解しています。しかし、フィールド値が空でないことを確認するためのインデックス オプションがあるかどうかはわかりません。空のフィールド値は、次の JavaScript 式を満たします。

!value && value !== 0 && value !== false
4

3 に答える 3

6

UNIQUE インデックスでのみ、これをモックすることができます。フィールド/値が欠落しているエントリを含むドキュメントを作成できます。インデックスに NULL 値を含むドキュメントが作成され、さらに欠落した値は許可されません。

あなたの要件は NON UNIQUE キーに対するものであるため、この時点で MONGODB (v2.2) に値がインデックス付きの列に存在する必要があることを保証するオプションがあるとは思いません。

于 2013-01-02T14:52:52.203 に答える
3

mongodb では、_idフィールドのみが要件を満たすことができます。この問題では、インデックス作成は良い考えではないようです (実行可能なものでもありません)。

mongodbに監視を依頼するのではなく、アプリの挿入および更新操作でこのルールを適用する必要があると思います。

于 2013-01-02T17:56:23.027 に答える