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

MongoError:Validasi dokumen gagal - Bagaimana cara memasukkan float dan int ke dalam bidang yang sama - yang ditandai sebagai ganda?

Ditemukan 2 solusi:

1. Pendekatan yang agak rumit - karena saya berakhir dengan mixed types di kolom saya. Secara umum, Anda mungkin tidak ingin tipe campuran karena menambah kerumitan - dan tidak ada alasan bagus bagi mereka untuk dianggap campuran dalam kasus saya.

Pada dasarnya, bukan satu jenis , Anda dapat menggunakan daftar jenis seperti ini:

bsonType: "double" vs bsonType: [ "double", "int" ] .

Fitur ini didokumentasikan di sini:$types .

myValidatorIs =
  { validator:
      { $jsonSchema :
          { bsonType: "object"
          , required: [ "price" ]
          , properties:
              { price:
                  { bsonType: [ "double", "int" ]  // add "int" in this array here
                  , description: "must be a double/float and is required"
                  }
              }
          }
      }
  , validationAction: "error"
  , validationLevel: "strict"
  };

2. Pendekatan yang disarankan , temukan ini dengan bantuan dari @lvrf

const MongoType_Double = require('mongodb').Double;

myValidatorIs =
  { validator:
      { $jsonSchema :
          { bsonType: "object"
          , required: [ "price" ]
          , properties:
              { price:
                  { bsonType: "double"  // leave this as double
                  , description: "must be a double/float and is required"
                  }
              }
          }
      }
  , validationAction: "error"
  , validationLevel: "strict"
  };

// then use the MongoType_Double constructor like so: 

db.collection("collection").insertOne({ price : MongoType_Double(4.0) }); // no errors..

Ini juga harus bekerja untuk semua jenis lain seperti timestamp dan semacamnya:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Node memeriksa apakah objectid valid

  2. mongodb setel nol dalam pembaruan

  3. Nilai default tidak disetel saat menggunakan Perbarui dengan Upsert sebagai benar

  4. Bagaimana cara menggabungkan dan menggabungkan hasilnya menjadi koleksi?

  5. struktur bersarang kueri mongodb