mongo-查询(5)——查询数组

mongo-查询(5)——查询数组

    查询数组。此时你可能会使用到$all、$size。

> db.tianyc04.find()
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }
{ “_id” : 3, “fruit” : [ “orange”, “banana”, “peach” ] }

#通过全匹配,查询第一行
> db.tianyc04.find({fruit:[“apple”, “banana”, “peach”]})
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }

#如果将数组中的顺序颠倒,则第一行就匹配不上了。此时可以使用$all

> db.tianyc04.find({fruit:[“apple”, “peach”, “banana”]})

> db.tianyc04.find({fruit:{$all:[“apple”, “peach”, “banana”]}})
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }

#也可以只输入一个元素进行查询

 > db.tianyc04.find({fruit:’apple’})

{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }

#如果这个元素变成了数组,mongo就会进行精确匹配。此时你可能需要使用$all进行模糊匹配:

> db.tianyc04.find({fruit:[‘apple’]})

> db.tianyc04.find({fruit:{$all:[‘apple’]}})
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }

#还可以按照数组中指定位置的元素进行查询,注意数组下标的起始编号是0。

> db.tianyc04.find()
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }
{ “_id” : 3, “fruit” : [ “orange”, “banana”, “peach” ] }
> db.tianyc04.find({‘fruit.1’:’orange’})
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }

#可以按照数组长度进行查询,只查询数组长度为x的文档。

> db.tianyc04.find()
{ “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }
{ “_id” : 2, “fruit” : [ “apple”, “orange”, “peach” ] }
{ “_id” : 3, “fruit” : [ “orange”, “banana”, “peach” ] }
{ “_id” : 4, “fruit” : [ “apple” ] }
> db.tianyc04.find({fruit:{size:3}})<br>{ "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] }<br>{ "_id" : 2, "fruit" : [ "apple", "orange", "peach" ] }<br>{ "_id" : 3, "fruit" : [ "orange", "banana", "peach" ] }<br>&gt; db.tianyc04.find({fruit:{size:1}})
{ “_id” : 4, “fruit” : [ “apple” ] }
>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值