zoukankan      html  css  js  c++  java
  • MongoDB

    Different query operators in MongoDB treat null values differently.

    The examples on this page use the db.collection.find() method in the mongo shell. To populate the users collection referenced in the examples, run the following in mongo shell:

    db.users.insert(
       [
          { "_id" : 900, "name" : null },
          { "_id" : 901 }
       ]
    )

    Equality Filter

    The { name : null } query matches documents that either contain the name field whose value is null or that do not contain the name field.

    Given the following query:

    db.users.find( { name: null } )

    The query returns both documents:

    { "_id" : 900, "name" : null }
    { "_id" : 901 }

    If the query uses an index that is sparse, however, then the query will only match null values, not missing fields.

    Changed in version 2.6: If using the sparse index results in an incomplete result, MongoDB will not use the index unless a hint() explicitly specifies the index. See Sparse Indexes for more information.

    Type Check

    The { name : { $type: 10 } } query matches documents that contains the name field whose value is null only; i.e. the value of the item field is of BSON Type Null (i.e. 10) :

    db.users.find( { name : { $type: 10 } } )

    The query returns only the document where the item field has a null value:

    { "_id" : 900, "name" : null }

    Existence Check

    The { name : { $exists: false } } query matches documents that do not contain the item field:

    db.users.find( { name : { $exists: false } } )

    The query returns only the document that does not contain the item field:

    { "_id" : 901 }

    SEE ALSO: The reference documentation for the $type and $exists operators.

  • 相关阅读:
    问题6-10
    7.19 1
    经济学人常见词汇清单
    英语广播原声听力100篇MP3及听力原文
    6.30.2018
    6.26
    6.26
    6.26
    6.25
    6.25
  • 原文地址:https://www.cnblogs.com/huey/p/6120495.html
Copyright © 2011-2022 走看看