MongoDB中常用操作$addToSet、$pop和$rename


    目录
  • 一、$addToSet
  • 二、$pop
  • 三、$rename

    一、$addToSet
    在MongoDB中,$addToSet操作符用于将一个值添加到一个数组字段中,但只有当该值不在数组中已经存在时才会添加。
    $addToSet操作符的语法如下:
    
{ $addToSet: { <字段名>: <值> } }

    其中,<字段名>是要添加值的数组字段名,<值>是要添加的值。
    下面是一个示例,假设我们有一个名为"users"的集合,其中包含以下文档:
    
{ _id: 1, username: "John", interests: ["coding", "reading"] }

    现在我们想要向"interests"数组中添加一个新的兴趣爱好"swimming",但仅在该兴趣爱好不存在时才添加。我们可以使用$addToSet操作符来实现:
    
db.users.update(
  { _id: 1 },
  { $addToSet: { interests: "swimming" } }
)

    更新后的文档如下:
    
{ _id: 1, username: "John", interests: ["coding", "reading", "swimming"] }

    注意,由于"swimming"在"interests"数组中已经存在,所以它没有被添加到数组中。
    $addToSet操作符还可以用于添加一个文档到嵌套数组中,以及添加多个值到一个数组字段中。下面是一些示例:
    
  • 添加文档到嵌套数组中:

    
db.users.update(
  { _id: 1 },
  { $addToSet: { "addresses": { city: "New York", state: "NY" } } }
)

    
  • 添加多个值到一个数组字段中:

    
db.users.update(
  { _id: 1 },
  { $addToSet: { interests: { $each: ["swimming", "hiking"] } } }
)

    这将在"interests"数组中添加"swimming"和"hiking"两个值,但只有当它们在数组中不存在时才会添加。