Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mongodb中如何在双字段中存储null_Mongodb_Mongodb Query - Fatal编程技术网

在mongodb中如何在双字段中存储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({“

我的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({“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)