2 समाधान मिले:
<मजबूत>1. कुछ हद तक वायर्ड दृष्टिकोण - क्योंकि मैं mixed types
. के साथ समाप्त होता हूं मेरे कॉलम में। सामान्य तौर पर, आप मिश्रित प्रकार नहीं चाहते हैं क्योंकि जटिलता जोड़ता है - और मेरे मामले में उन्हें मिश्रित माना जाने का कोई अच्छा कारण नहीं है।
मूल रूप से एकल प्रकार . के बजाय , आप प्रकारों की सूची . का उपयोग कर सकते हैं इस तरह:
bsonType: "double"
बनाम bsonType: [ "double", "int" ]
.
यह सुविधा यहां प्रलेखित है:$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. अनुशंसित दृष्टिकोण , इसे @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..
यह अन्य सभी प्रकारों जैसे timestamp
. के लिए भी काम करना चाहिए और ऐसे: