非关系型数据库MongoDB入门 (3)

    元素组合满足查询条件:查询users集合中points数组中的一个内嵌文档的points字段小于等于70并且同时另一个内嵌文档的bonus等于20或者有一个内嵌文档同时满足以上两个条件的所有文档。

      db.users.find( { "points.points": { $lte: 70 }, "points.bonus": 20 } )

  查找为null或者不存在的字段:

    不能使用db.users.find( { name: null } ),这样会同时返回name字段等于null和不存在name字段的所有文档

    使用类型筛查查找为null的文档:db.users.find( { name : { $type: 10 } } ) => 只查找name字段为null的所有文档

    使用存在性筛查不存在字段的所有文档:db.users.find( { name : { $exists: false } } ) =>查找出不存在name字段的所有文档

==========================================================================================

 上面讲完了查询的匹配条件,接下来是查询结果映射:也就是find函数第二个参数的意义

  返回查询的映射字段:上面我们查询方法中的 <projection>文档,映射文档用来指明返回结果中包括和排除哪些字段,下面是<projection>文档(find方法的第二个参数)

{ field1: <value>, field2: <value> ... }

  其中field字段名称<value>的值为1true表示在返回的文档中包含此字段,<value>的值为0或者false则返回的文档中不会包含此字段。若不显示指明_id的显示或隐藏则会默认返回文档中会包含_id字段,一个<projection>文档不能同时指定包括和排除的字段,除了排除_id字段,在显式包括字段的映射中_id字段是唯一一个可以显式排除的字段。

    1. 查询返回users集合中status值为”A”的所有文档包含文档的所有字段

      (1) db.users.find( { status: "A" } )

    2.    在查询的结果集中只返回匹配文档的namestatus以及默认的_id字段,同时也可以显式排除_id字段

      (1) db.users.find( { status: "A" }, { name: 1, status: 1 } )

      (2) db.users.find( { status: "A" }, { name: 1, status: 1, _id: 0 } )

    3.    返回排除字段之外的所有的字段:返回favoritespoints字段外所有字段

      (1) db.users.find( { status: "A" }, { favorites: 0, points: 0 } )

    4.    返回嵌入文档中指定字段和排除嵌入文档中的字段:(1)返回_id,status,name,和嵌入文档favorites中的food字段food字段仍然在嵌入文档favorites中。(2)返回排除嵌入文档favoritesfood外的所有字段

      (1) db.users.find({ status: "A" },{ name: 1, status: 1, "favorites.food": 1 })

      (2) db.users.find({ status: "A" },{ "favorites.food": 0 })

     5.    映射数组中的嵌入文档:返回namestatus字段以及points数组文档中包含bonus字段的文档

      (1) db.users.find( { status: "A" }, { name: 1, status: 1, "points.bonus": 1 } )

    6.    映射返回数组中特定的数组元素MongoDB包含下面映射操作符$elemMatch,$slice,以及$,他们是用来返回指定防范会数组中包含映射元素的唯一方式,不能使用数组索引来映射指定元素

==========================================================================================

  ③更新文档:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxdsy.html