美文网首页mongoDB
MongoDB之文档投射

MongoDB之文档投射

作者: AbstractCulture | 来源:发表于2020-09-15 15:11 被阅读0次

投射

  • 只返回部分字段
  • 内嵌文档的投射
  • 数组的投射

db.collection.find()的语法结构

db.collection.find(<query>,<projection>)

默认情况下,不指定projection,find就会查询出所有的字段信息,相当于mysql中的select *,此时我们可以投射对查询结果进行指定
,注意,除了文档主键外,不可以混用inclusion和exclusion,也就是不能出现文档主键外的字段在一个projection中声明为0和1.

projection: { field: inclusion }

inclusion: 1 表示返回字段,0表示不返回字段

对字段进行投射

  • 查询文档中name为java的balance,包含文档主键
db.accounts.find( { name: "java"},{ balance: 1 } )
  • 查询文档中name为java的balance,不包含文档主键
db.accounts.find( { name: "java"},{ balance: 1,_id: 0 } )
  • 查询文档中name为java的文档信息,去除文档主键
db.accounts.find( { name: "java"},{ _id: 0 } )
  • 错误示范:混用inclusion和exclusion
db.accounts.find( { name: "java"},{ balance: 1,name: 0 } )

对数组字段进行投射

使用$slice操作符可以返回数组字段中的部分元素

  • 返回name为java的文档信息中的contact数组中的第一个元素
db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: 1 } } )
  • 返回name为java的文档信息中的contact数组中的最后一个元素
db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: -1 } } )
  • 返回name为java的文档信息中的contact数组中的前2个元素,$slice中参数数组中的第一个参数会做skip操作,第二个参数会做limit操作
db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: [0,2] } } )
  • 返回文档信息中的contact数组包含oracle的name,$elemMatch只返回符合条件的第一个元素
db.accounts.find( 
    { name: "java" } ,
    { 
        _id: 0 ,
        name: 1 ,
        contact: { $elemMatch: { $gt: "alibaba" } }
    } 
)
  • 返回文档信息中的contact数组包含oracle的name和contact中的第一个元素
db.accounts.find( 
    { contact: { $gt: "alibaba" } } ,
    { 
        _id: 0 ,
        name: 1 ,
        "contact.$": 1
    } 
)

相关文章

  • MongoDB之文档投射

    投射 只返回部分字段 内嵌文档的投射 数组的投射 db.collection.find()的语法结构 默认情况下,...

  • Mongodb基本操作

    mongodb数据库管理: Mongodb插入文档: Mongodb更新文档 Mongodb删除文档: Mongo...

  • MongoDB之文档游标

    游标 查询操作返回的结果游标 游标的迭代与操作 db.collecton.find() 返回一个文档集合游标,在不...

  • mongo增删该查

    MongoDB 插入文档MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:...

  • Docker安装MongoDB

    MongoDB是什么? mongoDB是存储文档的非关系型数据库。 MongoDB的文档结构 集合 集合中可以包...

  • Mac 下MongoDB的安装、配置和使用

    概念 MongoDB相关网站MongoDB官网mongoDB国内网站中文MongoDB文档地址MongoDB的gi...

  • (十二)学习笔记:MongoDB数据库总结

    MongoDB数据库 MongoDB将数据存储为文档 数据结构由键值对组成的,MongoDB的文档类似于json对...

  • MongoDB学习(二)

    MongoDB 更新文档 MongoDB 使用update()和save()方法来更新集合中的文档。 update...

  • MongoDB的增删改查

    1.MongoDB的插入文档 MongoDB使用insert()和save()插入文档数据插入语法 实例 如果我们...

  • 2、MongoDB基础知识(1)(MongoDB笔记)

    这里是阅读了《MongoDB权威指南》后做的相关笔记。 一、文档 文档是MongoDB的核心概念。文档就是键值对的...

网友评论

    本文标题:MongoDB之文档投射

    本文链接:https://www.haomeiwen.com/subject/mjdfyktx.html