以下例子基本应该够用了,万一自己忘记了还有备份。😅

插入数据

.db('stf').table('apkinfo').insert({
  id: "1",
  name:  "中国象棋",
  apkname: "boyaa",
  version: "2.1.0",
  size: "30M",
  uploadday: "2016-11-26",
  activity: "1"
})

在数据表对象中插入一行数据

var newdata = {
"product":  "oppo" ,
"result":  "pass"
};
r.db('stf').table('tasklist').get('d179c4b3-62ec-4139-92f5-6bb677094bb6').update({
detail:r.row('detail').default([]).append(newdata)})
//get('keyid')

在数据表中过滤数据:

r.db('stf').table('devices').filter({display:{xdpi:320,ydpi:320}})

替换数据

var rpldata={
  reporturl:"stf.oa.com/log/xx.log"
};
r.db('stf').table('tasklist').get('taskid').update(rpldata)

插入数据 2

var newdata={
  taskid: "20161129"
  ,useremail: "ff@qq.com"
  ,apkname:"chinesechessv2.5.0.apk"
  ,reporturl:""
  ,detail:[]
};
r.db('stf').table('tasklist').insert(newdata)

增加 detail[] 数据:

var rpldata={
  product:"huawei 6p"
  ,serial:"abcdefghijklmn"
  ,status:"finish"
  ,result:"install fail"
  ,errurl:"stf.oa.com/logurl/serail.log"
  ,imgurl:"stf.oa.com/imgurl/serail.log"
};
r.db('stf').table('tasklist').get('20161129').update({detail:r.row("detail").append(rpldata)})

删除

r.db('stf').table('tasklist').get('20161129').update({detail:r.row("detail").delete(第几条)})

替换 detail[] 里面的数据

var data={
  product:"huawei 6p"
  ,serial:"abcdefghijklmn"
  ,status:"finish"
  ,result:"success"
  ,errurl:"stf.oa.com/logurl/serail.log"
  ,imgurl:"stf.oa.com/imgurl/serail.log"
};
r.db('stf').table('tasklist').get('20161129').update({detail:r.row("detail").changeAt(第几条数据,data)})

数据查询
查询 huawei 和 sumsang 的手机并获取其 serial

r.db('stf').table("devices").filter(
  function (doc) {
    return r.expr(["HUAWEI","SAMSUNG","OPPO",])
            .contains(doc("manufacturer"));
  }
).getField("serial")

查询内 display 里面数据中的 width 字段

r.db('stf').table("devices").filter(
  function (doc) {
    return r.expr([480,1080])
            .contains(doc("display")("width"));
  }
)

获取多个数据

db.run(r.table("devices").filter(function (doc){
      return r.expr(manufacturer).contains(doc("manufacturer"))
       .and(r.expr([version]).contains(doc("version")))
        .and(r.expr([width]).contains(doc("display")("width")))
          .and(r.expr([height]).contains(doc("display")("height")))
      }).getField('serial'))

删除数组中的段数据
数据格式

{
"serial": [
"chess" ,
"nba" ,
"fifa"
] ,
id: "123456"
}
//删除serial数组中的abc,
r.db('stf').table(...).get("123456").update({serial: r.row("serial").difference(["abc"])})

联合查询

r.db('stf').table('tasklist').innerJoin(
  r.db('stf').table('apkinfo'),
  function (tasklist, apkinfo) {
    return tasklist('fileID').eq(apkinfo('id'));
  })
  .map({
  id: r.row('right')('id'),
  detail:r.row('left')('detail'),
  taskid:r.row('left')('taskid'),
  appName: r.row('right')('appName')
  })
  .filter(r.row('taskid').eq(taskid))


↙↙↙阅读原文可查看相关链接,并与作者交流