mongo 修改嵌套属性

mongo修改级联属性时,仅使用$匹配时,查询条件必须匹配到唯一的一条记录,不能是多条记录。否则会出现以下错误:
The positional operator did not find the match needed from the query.
位置操作符没有从查询中找到所需的匹配项。

$.xx.下标可以修改某条嵌套属性数据。$[]可以修改所有嵌套属性数据。
比如下面的例子,可以某一个嵌套内容:
db.getCollection('sys_tenant').update(
        {"xxx":'222'},
    {$set:{"xxx.$.sss.0":''}},
    {multi:true}
)

模糊查询

db.getCollection('ddd').find({"sss":/^.*xxx.*$/})

聚合查询(控制台复制后稍作调整->shell)

db.r.aggregate([
    { "$unwind" : "$xxx"},
    { "$project" : { "d1" : 1, "d2" : 1, "s" : "$xxx.s", 
        "d" : "$xxx.q", "d3" : "$xxx.d3", 
        "d" : "$xxx.q", "c" : "$xxx.c", 
        "d" : "$xxx.c", "c" : "$xxx.c", 
        "s" : "$xxx.c.s",
        "t" : "$xxx.c.x"}},
        { "$sort" : { "x" : -1}}
]) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值