文档

关于 SequoiaDB

快速入门

安装

基本操作

数据模型

SQL引擎

FileSystem引擎

S3引擎

系统架构

数据库管理

连接器

驱动

参考手册

SequoiaDB Shell方法

操作符

SQL语法

SQL to SequoiaDB 映射表

限制

错误码

故障排除

SAC 管控中心

Web服务

版本信息

$addtoset

语法

{ $addtoset: { <字段名1>: [ <值1>,<值2>,...,<值N>] ,<字段名2>: [ <值1>,<值2>,...,<值N> ], ... } }

描述

$addtoset是向数组对象中添加元素和值,操作对象必须为数组类型的字段。$addtoset有如下规则:

  • 记录中有指定的字段名(<字段名1>,<字段名2>,...)。

    如果指定的值([<值1>,<值2>,...,<值N>])在记录中存在,跳过不做任何操作,只向目标数组对象中添加不存在的值。

  • 记录中不存在指定的字段名。

    如果记录本身不存在指定的字段名(<字段名1>,<字段名2>,...),那么将指定的字段名和值更新到记录中。

示例

  • 记录中存在目标数组对象。如有记录:

    { arr: [1,2,4], age: 10, name: "Tom" }
    > db.foo.bar.update({ $addtoset: { arr: [1,3,5] } }, { arr: { $exists: 1 } })

    此操作后,记录更新为:

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

    将原记录arr数组没有的元素3和5,使用$addtoset之后更新到arr数组内。

  • 记录中不存在指定的数组对象,如有记录:

    { name: "Mike", age: 12 }
    > db.foo.bar.update({ $addtoset: { arr: [1,3,5] } }, { arr: { $exists: 0 } })

    此操作后,记录更新为:

    { arr: [1,3,5], age: 12, name: "Mike" }

    原记录中没有数组对象arr字段,$addtoset操作将arr字段和值更新到记录中。

回到顶部