mongoDB

MongoDB之文档投射

2020-09-15  本文已影响0人  AbstractCulture

投射

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

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

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

projection: { field: inclusion }

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

对字段进行投射

db.accounts.find( { name: "java"},{ balance: 1 } )
db.accounts.find( { name: "java"},{ balance: 1,_id: 0 } )
db.accounts.find( { name: "java"},{ _id: 0 } )
db.accounts.find( { name: "java"},{ balance: 1,name: 0 } )

对数组字段进行投射

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

db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: 1 } } )
db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: -1 } } )
db.accounts.find( { name: "java" } ,{ _id: 0 , contact: { $slice: [0,2] } } )
db.accounts.find( 
    { name: "java" } ,
    { 
        _id: 0 ,
        name: 1 ,
        contact: { $elemMatch: { $gt: "alibaba" } }
    } 
)
db.accounts.find( 
    { contact: { $gt: "alibaba" } } ,
    { 
        _id: 0 ,
        name: 1 ,
        "contact.$": 1
    } 
)
上一篇 下一篇

猜你喜欢

热点阅读