• update()
    • 语法
    • 类别
    • 描述
    • 参数
    • 返回值
    • 错误
    • 示例

    update()

    语法

    query.update( <rule>, [returnNew], [options] )

    类别

    SdbQuery

    描述

    更新查询后的结果集。

    Note:

    1. 不能与 query.count()、query.remove()同时使用。

    2. 与 query.sort()同时使用时,在单个节点上排序必须使用索引。

    3. 在集群中与 query.limit()或 query.skip()同时使用时,要保证查询条件会在单个节点或单个子表上执行。

    参数

    参数名参数类型默认值描述是否必填
    ruleJSON—-更新规则,记录按指定规则更新
    returnNewboolfalse是否返回更新后的记录
    optionsJSON—-可选项

    options 参数详细说明如下:

    属性值类型默认值描述是否必填
    KeepShardingKeyboolfalse是否保留分区键字段

    Note:

    1. query.update()方法的定义格式包含 rule 参数、 returnNew 参数和options 参数。其中 rule 参数与 update()的 rule 参数相同,options 参数与 update()的 options 参数相同。

    2. returnNew 参数默认为 false,当为 true 时,返回修改后的记录值。

    返回值

    返回结果集的游标。returnNew为false,则返回更新前的查询结果集的游标;returnNew为true,则返回更新后的结果集的游标。

    错误

    如果出错则抛异常,并输出错误信息,可以通过getLastErrMsg()获取错误信息或通过getLastError()获取错误码。关于错误处理可以参考常见错误处理指南。

    常见错误可参考错误码。

    示例

    • 查询集合 bar 下 age 字段值大于10的记录(如使用 $gt 查询),并将符合条件的记录的 age 字段加1。
    1. > db.foo.bar.find( { age: { $gt: 10 } } ).update( { $inc: { age: 1 } } )
    2. {
    3. "_id": {
    4. "$oid": "5d006c45e846796ae69f85a9"
    5. },
    6. "age": 21,
    7. "name": "tom"
    8. }
    9. {
    10. "_id": {
    11. "$oid": "5d006c45e846796ae69f85aa"
    12. },
    13. "age": 22,
    14. "name": "ben"
    15. }
    16. {
    17. "_id": {
    18. "$oid": "5d006c45e846796ae69f85ab"
    19. },
    20. "age": 23,
    21. "name": "alice"
    22. }