在mongodb中如何在双字段中存储null
我的mongodb模式有一个“double”数据类型的字段。有时候,当这个字段没有值时,mongo将它存储为0.0,但我需要它存储为null在mongodb中如何在双字段中存储null,mongodb,mongodb-query,Mongodb,Mongodb Query,我的mongodb模式有一个“double”数据类型的字段。有时候,当这个字段没有值时,mongo将它存储为0.0,但我需要它存储为null db.nulltest.insertOne({“name”:“abc”,“salary”:null})-插入时,架构验证失败(这是预期的) db.nulltest.insertOne({“name”:“abc”,“salary”:Number(null)})-插入时,存储为0.0(“salary”:0.0) db.nulltest.insertOne({“
db.nulltest.insertOne({“name”:“abc”,“salary”:null})
-插入时,架构验证失败(这是预期的)db.nulltest.insertOne({“name”:“abc”,“salary”:Number(null)})
-插入时,存储为0.0(“salary”:0.0
)db.nulltest.insertOne({“name”:“abc”,“salary”:Number()})
-插入时,存储为0.0(“salary”:0.0
)db.nulltest.insertOne({“name”:“abc”,“salary”:Number(“null”)})
-插入时,存储为NaN(“salary”:NaN
)db.createCollection("nulltest", {
validator: { $jsonSchema: {
bsonType: "object",
properties: {
"name": {
bsonType: "string"
},
"salary": {
bsonType: "double"
}
}}
}} )
问题:如何在双数据类型的字段中存储空值?例如:
“salary”:null
您可以为bsonType
使用数组。例如:
db.createCollection("test", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["num"],
properties: {
num: {
bsonType: [ "double", "null" ]
}
}
}
}
})
此架构应接受double
或null
:
> db.test.insert({_id: 0, num: 123})
> db.test.insert({_id: 1, num: null})
> db.test.find()
{ "_id": 0, "num": 123 }
{ "_id": 1, "num": null }
中概述了所有可能的类型
请注意,
null
是一个单独的类型<代码>数字(null)从类型的角度看没有意义。这就像说Number(String)
您可以为bsonType
使用数组。例如:
db.createCollection("test", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["num"],
properties: {
num: {
bsonType: [ "double", "null" ]
}
}
}
}
})
此架构应接受double
或null
:
> db.test.insert({_id: 0, num: 123})
> db.test.insert({_id: 1, num: null})
> db.test.find()
{ "_id": 0, "num": 123 }
{ "_id": 1, "num": null }
中概述了所有可能的类型
请注意,null
是一个单独的类型<代码>数字(null)从类型的角度看没有意义。这就像说Number(String)