insert()

    语法

    db.collectionspace.collection.insert(<doc|docs>,[flag])

    db.collectionspace.collection.insert(<doc|docs>,[options])

    类别

    Collection

    参数描述

    • ( Object|Object of Array必填 )

    单条或者批量记录。

    • flag ( Int选填 )

    插入标志位,用于控制插入操作的行为及结果。其默认值为 0。可单独使用或者通过“位与”的方式使用如下选项来控制插入操作的行为及结果:

    • SDB_INSERT_RETURN_ID:表示插入成功后返回记录中“_id”字段的内容。
    • SDB_INSERT_REPLACEONDUP:默认情况下,当发生索引键冲突时,插入操作将失败并且终止。设置该选项后,当发生索引键冲突时,将已存在的记录更新为待插入的新记录,并继续插入其他记录。
      • options ( Object选填 )

    插入选项,用于控制插入操作的行为及结果。参数 options 等同于参数 flag,其属性选项如下:

    • ( Bool选填 ):等同于参数 flag 中的 SDB_INSERT_RETURN_ID 选项。
    • ContOnDup ( Bool选填 ):等同于参数 flag 中的 SDB_INSERT_CONTONDUP 选项。
    • ReplaceOnDup ( Bool选填 ):等同于参数 中的 SDB_INSERT_REPLACEONDUP 选项。Note:
    • 参数 flag 中的 SDB_INSERT_CONTONDUP 和 SDB_INSERT_REPLACEONDUP 选项不能同时组合使用。使用参数 options 时的情况与使用参数 flag 的一致。

    返回值

    • 成功返回详细结果信息(BSONObj 对象),结构如下:

    当用户开启 flag 参数的 SDB_INSERT_RETURN_ID 选项或者 参数的 ReturnOID 选项时,详细结果信息中还包含 "_id" 字段,情况如下:

    • 单条插入:直接返回插入记录的“_id”字段的内容。
    • 批量插入:以数组的方式返回插入记录的“_id”字段的内容。
      • 出错抛异常。

    insert()函数常见异常如下:

    版本

    v1.0及以上版本。

    示例

    • 不指定 _id 字段,插入一条记录。
      • 插入一条带有 _id 字段的记录。
      • 插入多条记录,如下操作会在集合bar中插入两条记录。
      1. > db.foo.bar.insert( [ { _id: 20, name: "Mike", age: 15 }, { name: "John", age: 25, phone: 123 } ] )
      • 插入拥有重复“_id”键的多条记录,如下操作将会在集合bar中插入两条记录。
      1. > db.foo.bar.find()
      2. {
      3. "_id": 1,
      4. "a": 1,
      5. }
      6. {
      7. "_id": 3,
      8. "c": 3
      • 插入记录,并以 Json 对象的方式返回结果。