Fork me on GitHub

MongoDB 查询数组

在阅读《MongoDB权威指南》4.3.3 查询数组章节时,有一个疑惑:$in与普通查询方式有何区别,试验结果如下:

  1. 假设创建了一个包含3个元素的集合:

    1
    2
    3
    > db.test.insert({"_id": 1, "digit": [1, 2, 16]})
    > db.test.insert({"_id": 2, "digit": [1, 11, 15]})
    > db.test.insert({"_id": 3, "digit": [3, 2, 1]})
  2. 比较查询条件及结果差异:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    > db.test.find({"digit": 2});
    { "_id" : 1, "digit" : [ 1, 2, 16 ] }
    { "_id" : 3, "digit" : [ 3, 2, 1 ] }
    > db.test.find({"digit": [2]});
    >
    > db.test.find({"digit": [1, 2, 16]});
    { "_id" : 1, "digit" : [ 1, 2, 16 ] }
    > db.test.find({"digit": [2, 1, 16]});
    >
    > db.test.find({"digit": {"$in": [1, 2]}});
    { "_id" : 1, "digit" : [ 1, 2, 16 ] }
    { "_id" : 2, "digit" : [ 1, 11, 15 ] }
    { "_id" : 3, "digit" : [ 3, 2, 1 ] }
梦想还是要有的,万一有人赏了呢