快速入门
安装
基本操作
数据模型
SQL引擎
系统架构
数据库管理
连接器
驱动
参考手册
故障排除
SAC
版本信息
{ $push_all: {<字段名1>:[<值1>,<值2>,...,<值N>], <字段名2>: [<值1>,<值2>,...,<值N>], ... } }
$push_all向指定数组对象(如<字段名1>)推入每一个指定值([<值1>,<值2>,...,<值N>])。操作对象必须为数组类型的字段。如果记录中不存在指定的数组对象,向记录推入指定的数组对象和每一个指定的值([<值1>,<值2>,...,<值N>]);如果指定的值存在数组对象中,同样被推入到数组对象中。
向集合bar下的arr数组对象推入[1,2,8,9]数组。如有记录:
{ arr: [1,2,4,5], age: 10, name: ["Tom","Mike"] }
> db.foo.bar.update({ $push_all: { arr: [1,2,8,9] } })
此操作后,记录更新为:
{ arr: [1,2,4,5,1,2,8,9], age: 10, name: ["Mike"] }
虽然原来记录arr对象有元素1和2,使用$push_all操作符,会将[1,2,8,9]全部值推入到数组对象arr中。
向集合bar中推入数组对象name,假设原记录不存在数组对象name。如有记录:
{ arr: [1,3,4,5], age: 10 }
> db.foo.bar.update({ $push_all: { name: ["Tom","Jhon"] } }, { name: { $exists: 0 } })
此操作后,记录更新为:
{ arr: [1,3,4,5], age: 10, name: ["Tom","Mike"] }