mongodb——查询文档内部属性以及数组

上一篇博客中,我们学会了最基础的查询方法。即按照某一个属性,使用最简单的属性匹配方式查询。这一篇博客中我们来讲一下文档内部嵌套属性的查询以及对于数组的查询。

嵌入文档查询

使用场景:如果一个文档内部有层级关系,此时想要根据内部属性进行查找
例子:如果一个文档格式为

{
    "favorite":{
        "sport":"soccer",
        "fruit":"apple"
    }
}

此时想要通过fruit=apple进行查询,则此时应该用

 db.test.find({"favorite.fruit":"apple"})

此处.表示向下一个层级。注:有层级操作的时候key值必须要加引号

数组查询

使用场景 :如果一个文档内部结构中,存在数组结构,且需要针对这个数组进行查询操作。
例子:文档格式:

{
    "favorite":{
        "sport":"soccer",
        "fruit":["apple","peach"]
    }
}

这个例子中的数组是在文档内部的,这样子我们就可以把上面的查询方式结合起来。

精确查询

db.test.find({"favorite.fruit":["apple","peach"]})

查询语句的value必须跟数组一模一样,顺序也不能够调换
如果查询语句是这样:

db.test.find({"favorite.fruit":["peach","apple"]})

则会查询不出

匹配单个元素

db.test.find({"favorite.fruit":"apple"})

可以看出在匹配单个元素的时候,不需要加数组符号([])

匹配数组中某个指定的元素(某个指定位置的元素)

db.test.find({"favorite.fruit.1":"peach"})

上述语句表示查询条件为 数组的第二个元素为peach

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值