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中插入两条记录。
- > db.foo.bar.insert( [ { _id: 20, name: "Mike", age: 15 }, { name: "John", age: 25, phone: 123 } ] )
- 插入拥有重复“_id”键的多条记录,如下操作将会在集合bar中插入两条记录。
- > db.foo.bar.find()
- {
- "_id": 1,
- "a": 1,
- }
- {
- "_id": 3,
- "c": 3
- 插入记录,并以 Json 对象的方式返回结果。