0
点赞
收藏
分享

微信扫一扫

MongoDB读取文档之数组操作符

蓝哆啦呀 2021-12-29 阅读 69

首先,为了方便demo,我们需要创建包含数组和嵌套数组的文档

db.accounts.insert([
    {
       name: "spring",
       balance: 8787,
       contact: ["China","Java","FrameWork"]
    },
    {
        name: "mysql",
        balance: 8,
        contact: [ ["oracle"],"database","8.0" ]
    },
    {
        name: "java",
        balance: 8,
        contact: [ ["oracle"],"core","8.0" ]
    }
])

数组操作符

$all

  • 语法结构
{ <field>: { $all: [ <value1] , <value> , ... ] } }
  • 读取contact数组中包含China和Java的文档
db.accounts.find( { contact: { $all: ["China", "Java"] } } )
  • 读取contact数组中包含oracle数组的文档
db.accounts.find( { contact: { $all: [ ["oracle"] ] } } )

$elemMatch

  • 语法结构
{ <field>: { $elemMatch: { <query1] , <query2> , ... } } }
  • 读取contact数组中大于7.0小于9.0的文档信息
db.accounts.find( { contact: {$elemMatch: { $lt: "9.0", $gt: "7.0" } } } )
  • 联合$all进行使用,读取contact数组中包含oracle数组且数组中存在大于7.0小于9.0的数值的文档信息
db.accounts.find( {
    contact: {
            $elemMatch: {
                $lt: "9.0",
                $gt: "7.0"
            },
            $all: [ ["oracle"] ]
        }
} )
  • 联合$all进行使用,读取contact数组存在大于7.0小于9.0的数值,和存在大于9.0小于10.0的文档信息
db.accounts.find( {
    contact: {
            $all: [
                 { $elemMatch: { $lt: "9.0", $gt: "7.0" } },
                 { $elemMatch: { $lt: "10.0", $gt: "9.0" } },
            ]
        }
} )
举报

相关推荐

0 条评论