sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoError:Dokument mislykkedes validering - Hvordan indsætter man både float og int i samme felt - som er markeret som dobbelt?

Fandt 2 løsninger:

1. En noget kablet tilgang - fordi jeg ender med mixed types i min klumme. Generelt vil du måske ikke have blandede typer, da de tilføjer kompleksitet - og der er ingen god grund til, at de skal betragtes som blandede i mit tilfælde.

Grundlæggende i stedet for en enkelt type , kan du bruge en liste over typer sådan:

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

Denne funktion er dokumenteret her:$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. Den anbefalede tilgang , fandt dette med hjælp fra @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..

Dette burde også fungere for alle de andre typer såsom timestamp og sådan:




  1. Regulært udtryk Spring data mongodb repositories

  2. Angiv en sorteringsrækkefølge fra strengværdier i mongdb-aggregation

  3. Er det muligt at oprette forbindelse til lokal MongoDB med flutter dart?

  4. Sådan opretter du en konfigurationsfil til MongoDB