mongodb java 内嵌文档_mongodb内嵌文档查找和修改问题

数据的格式是这样的:

{

"_id" : 1,

"people_id" : 1,

"albums" : [

{

"id" : 1,

"name" : "123",

"privilege" : 0,

},

{

"id" : 2,

"name" : "Q",

"privilege" : 5,

},

{

"id" : 3,

"name" : "Q",

"privilege" : 5,

},

]

}

{

"_id" : 2,

"people_id" : 2,

"albums" : [

{

"id" : 1,

"name" : "4",

"privilege" : 0,

},

{

"id" : 2,

"name" : "5",

"privilege" : 0,

}

]

}

现在我想的是

1 , 查询people_id 为 1 且 privilege 为 5的内嵌文档,mongodb的查询命令怎么写的啊

2,更新people_id 为 2 且权限为 id为2的内嵌文档的name字段值为 6,更新命令怎么写的啊

查询我用

db.find({"people_id" : 1,"albums":{"$elemMatch" : {"privilege" : 5}}})

来尝试匹配过,但是匹配出了:

{

"_id" : 1,

"people_id" : 1,

"albums" : [

{

"id" : 1,

"name" : "123",

"privilege" : 0,

},

{

"id" : 2,

"name" : "Q",

"privilege" : 5,

},

{

"id" : 3,

"name" : "Q",

"privilege" : 5,

},

]

}

我并不想要id为1的那个,只想唯一匹配id为2和3那个

修改,我确实不会,

还请大家帮忙提下解决方法,非常谢谢咯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值