【SequoiaDB巨杉数据库】更新符 $push

语法

{ $push: {<字段名1>: <值1>, <字段名2>: <值2>, ... } }

 

描述

$push将给定数值(<值1>)插入到目标数组(<字段名1>)中,操作对象必须为数组类型的字段。如果记录中不存在指定的字段名,将指定的字段名以数组对象的形式推入到记录中并填充其指定的数值;如果记录中存在指定的字段名,且字段名存在指定的数值,指定的数值也会被推入到记录中。

其中“<值>”支持以下几种格式:

  • 任意类型的常量值,如:

    { $push: { arr: 1 } }

     

  • 通过字段操作符指定的原始记录中的某字段,如:

    { $push: { arr: { $field: "fieldName" } } }

     

    如果 "fieldName" 字段在原始记录中不存在,则不做任何操作。

示例

  • 向集合employee下的arr数组对象推入数值1。原记录中arr数组对象存在元素1,如有记录:

    { arr: [1,2,4], age: 10, name: ["Tom","Mike"] }

     

    > db.sample.employee.update({ $push: { arr: 1 } })

     

    此操作后,记录更新为:

    { arr: [1,2,4,1], age: 10, name: ["Tom","Mike"] }

     

    虽然原来arr中有元素1,使用$push操作符,还是会将元素1推入到arr数组对象中。

  • 向集合employee中推入不存在的数组对象和值。原记录中不存在数组对象name,如有记录:

    { arr: [1,2], age: 20 }

     

    > db.sample.employee.update({ $push: { name: "Tom" } }, { name: { $exists: 0 } })

     

    此操作后,记录更新为:

    { arr: [1,2], age: 20, name: ["Tom"] }

     

    原记录中不存在数组对象name,使用$push操作符,会将name以数组对象的形式推入到记录中。

  • 将上述集合employee中age字段的值推入到arr字段中

    > db.sample.employee.update({ $push: { arr: { $field: "age" } } })

     

    此操作后,记录更新为:

    { arr: [ 1, 2, 20 ], age: 20, name: [ "Tom" ] }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值