Mongodb嵌套查询及修改

Mongodb各文档中对嵌套查询的介绍不知道藏在哪个地方,反正我是没找到,一个偶然的机会发现网上的一个帖子,终于知道了嵌套查询的用法。于是乎我们应用中的一个问题也随之被解决了。不说废话了,现在说下嵌套查询的使用。

假设mongodb中存在某个collections,其数据如下:

> db.xx.find()
{ "_id" : 1, "name" : { "first" : 2, "last" : 3 } }
{ "_id" : 3, "name" : { "1" : 1, "2" : 2, "3" : 3 } }
{ "_id" : 2, "name" : { "1" : 1, "2" : 2 } }

现在我们要查询_id=1的记录中name的first字段的值,执行如下:

> db.xx.find({"_id":1},{"name.first":1,"_id":0})
{ "name" : { "first" : 2 } }

OK,通过以上示例我们知道嵌套查询的关键就在于“name.first”。对嵌套属性的修改其实也类似,例如我们要将查询到这条记录中name.first的值+2,那么:

> db.xx.update({"_id":1},{$inc:{"name.first":2}})
> db.xx.find({"_id":1},{"name.first":1,"_id":0})
{ "name" : { "first" : 4 } }

ok,值已经改变。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值