2017-06-19 10 views
1
name: { 
    $regex: /^.{0,200}$/ 
} 

名前フィールドが存在しないことが保証されている場合、この種の検証はMongoDBドキュメントの検証で行うことができますか?その名前のフィールドが存在しない場合は、今私は、検証エラーを取得しているため

答えて

1

を解決することが、あなたはDにしたいと思います正規表現に対して名前フィールドを検証するように、コレクションの検証を行います。これを実現するために、$はあなたのバリデータにfalseのように存在します。

db.createCollection("contacts", 
{ validator: { $or: 
    [ 
    { name: { $exists: false} }, 
    { name: { $regex: /^.{0,200}$/ } } 
    ] 
} 
}) 

あなたはこの

{ 
    name: null 
} 

のようなものは、あなたもあなたの検証このヘルプをい

$ne: null 

$neを追加するようにしたい場合は?

+0

ええ、それは、ありがとう!私はあなたが1つのフィールドのために複数のルールを置くことができることを理解していなかったことがどれほど愚かなのか信じられません。:D – Dope

0

使用$はあなたのクエリに 例が存在する:$は、あなたは下のリンクで参照することができます存在についての詳細は

db.inventory.find({ name: { $exists: true, $regex: /^.{0,200}$/ } }) 

Link

・ホープこれはあなたの質問やコメントをもとに、あなたの問題

+0

MongoDBバリデーターを使用して何も照会しようとしていません。 $ existsを使用するということは、ファイルを作成または更新するときにそのフィールドが存在するかどうか気にしない場合、そのフィールドが常に存在するか存在しないことを意味します。私はちょうどその長さが200を超えていないようにしたい – Dope

関連する問題