• $pop
    • 语法
    • 描述
    • 示例

    $pop

    语法

    1. { $pop: { <字段名1>: <N>, <字段名2>: <N>, ... } }

    描述

    $pop操作是删除指定数组对象(<字段名1>,<字段名2>,…)最后 N 个元素,操作对象必须为数组类型的字段。如果记录中不存在指定的数组对象,跳过不做任何操作;如果指定的 N 值大于数组对象的长度,数组对象的长度更新为0,即它的元素全部被删除;如果指定的 N 值 < 0,意味着从数组起始删除第 -N 个元素。

    示例

    • 删除集合bar下数组对象arr的最后两个元素。如有记录:
    1. { arr: [1,2,3,4], age: 20, name: "Tom" }
    1. > db.foo.bar.update({ $pop: { arr: 2 } })

    此操作后,记录更新为:

    1. { arr: [1,2], age:20, name: "Tom" }
    • 删除集合bar下数组对象arr的最后10个元素。如有记录:
    1. { arr: [1,2,3,4], age: 20, name: "Tom" }
    1. > db.foo.bar.update({ $pop: { arr: 10 } })

    此操作后,记录更新为:

    1. { arr: [], age: 20, name: "Tom" }
    • 删除集合bar下数组对象arr的前两个元素,即设置N的值为-2。如有记录:
    1. { arr: [1,2,3,4], age: 20, name: "Tom" }
    1. > db.foo.bar.update({ $pop: { arr: -2 } })

    此操作后,记录更新为:

    1. { arr: [3,4], age: 20, name: "Tom" }