MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongo Json Schema Validator AnyOf tidak berfungsi

{test:"123"} validasi gagal karena tidak sesuai dengan skema apa pun di anyOf , yang membutuhkan test1 atau test2 sebagai satu-satunya kunci.

anyOf menerapkan setiap subskema ke instance Anda, dan menyatakan valid jika setidaknya salah satu subskema lolos validasi.

{test1: "123" } gagal karena skema root additionalProperties: false mencegah kunci apa pun di objek Anda yang tidak ditentukan dalam objek skema SAMA properties atau patternProperties .

Solusinya adalah dengan membuat beberapa duplikasi.

In THIS contoh (tautan untuk pengujian browser tetapi hanya draft-7), saya telah menambahkan properti root test1 dan test2 . Ini akan memungkinkan data di mana Anda memiliki kunci test1 atau test2 untuk lulus, tetapi mengingat saya tidak tahu persyaratan Anda, saya tidak dapat memberi tahu Anda cara memodifikasi skema untuk mengizinkan objek dengan kunci test untuk lulus (sebagai masing-masing dari anyOf subskema mencegahnya).

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "_id": {},
    "test": {},
    "test1": {},
    "test2": {}
  },
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "test1": {}
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "test2": {}
      },
      "additionalProperties": false
    }
  ]
}

Jika maksud Anda adalah untuk memeriksa apakah salah satu hal yang Anda masukkan memiliki test1 atau test2 , maka saya khawatir Skema JSON tidak dapat membantu Anda. Skema JSON dalam konteks Mongo hanya dapat memeriksa setiap item satu per satu, dan tidak memiliki kemampuan untuk memvalidasi kumpulan catatan yang berpotensi disisipkan.

Dalam skema contoh di atas, saya telah menghapus pemeriksaan tipe karena itu tidak relevan dengan pertanyaan ini, dan bsonType tetap berbeda dari tipe Skema JSON.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Normalisasi MongoDB, kunci asing dan bergabung

  2. Cara menghapus objek bersarang dalam di mongodb

  3. Driver Ruby Mongo:Bagaimana Cara Mencari Interval Tanggal?

  4. Periksa apakah upser MongoDB melakukan penyisipan atau pembaruan

  5. bagaimana cara mongoimport data ke aplikasi meteor yang digunakan?