RethinkDB 成功更新 returns 空对象

RethinkDB on success Update returns empty object

我用 NodeJS + ExpressJS + RethinkDB 写了一个 API。但是我在执行 updateinsert 时遇到 returning 数据结果的问题。
在下面的示例函数中执行 update。查询正常工作,但 result 内部是空对象 {},但 return 对象应包含 old/new 数据和其他状态数据。

查询

router.put( '/users/contact_data/:user_id', ( request, response ) => {
    let user_id = request.params.user_id;
    let updateFields = clean_obj.getCleanObject(request.body);

    r.db(db_name).table( 'User' )
        .get( user_id )
        .do((client)=>{
                return r.db("Planner").table('ContactData')
                    .get(client("contact_data_id"))
                    .update(
                        updateFields,
                        {
                            returnChanges: true
                        }
                    )
            }
        )
        .run( request._rdb )
        .then( cursor => cursor.toArray() )
        .then( result => {
            response.send( result );
        } )
        .catch( error => response.send( error ) );
} );

预期结果应如下所示(从 rethinkdb 文档复制):

{
    deleted: 0,
    errors: 0,
    inserted: 0,
    changes: [
        {
            new_val: {
                id: 1,
                author: "Julius_Caesar",
                title: "Commentarii de Bello Gallico",
                content: "Aleas jacta est",
                views: 207
            },
            old_val: {
                id: 1,
                author: "Julius_Caesar",
                title: "Commentarii de Bello Gallico",
                content: "Aleas jacta est",
                views: 206
            }
        }
    ],
    replaced: 1,
    skipped: 0,
    unchanged: 0
}

我不明白我做错了什么...

您正在将响应视为游标:

.then(cursor => cursor.toArray())

但实际上,响应应该是一个普通对象。