STF stf-rethinkdb 数据库一些简单的操作

sandy · June 22, 2018 · Last by 蓝蓝 replied at October 08, 2018 · 2099 hits

本篇文档简单介绍一下关于stf数据库的一些简单操作(注:本文中的所有代码请在node模式下运行)

一、创建表
创建表dc_universe

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').tableCreate('dc_universe').run(conn, function(err, res) {
console.log(res);
});
});

二、删除表
删除表dc_universe

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').tableDrop('dc_universe').run(conn, function(err, res) {
console.log(res);
});
});

三、创建表数据
1.插入一条数据

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn,callback) {
r.db('test').table("dc_universe").insert(
{id: 1,title: "Lorem ipsum",content: "Dolor sit amet"}
).run(conn, function(err, res) {
console.log(res);
});
});

2.插入多条数据

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn,callback) {
r.db('test').table("dc_universe").insert([
{id: 1,title: "Lorem ipsum",content: "Dolor sit amet"},
{id: 2,title: "I love you",content: "I love you too"},
{id: 3,title: "I miss you",content: "I miss you too"},
{id: 4,title: "Are you ok",content: "I am ok"},
{id: 5,title: "How are you",content: "I am fine"},
{id: 6,title: "what is up",content: "I am working"}
]).run(conn, function(err, res) {
console.log(res);
});
});

四、更改表数据
1.如果表中无此字段,会插入这个字段

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").filter({id: 1}).update({status: "published"}).run(conn, function(err, res) {
console.log(res);
});
});

2.如果表中有此字段,直接更新此字段的值

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").filter({id: 1}).update({title: "Lorem ipsum11111111111"}).run(conn, function(err, res) {
console.log(res);
});
});

3.更新所有行数据某列的值

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").update({state: 50}).run(conn, function(err, res) {
console.log(res);
});
});

4.更新指定行的多列的值

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").filter({id: 1}).update({title: "Lorem ipsum333",content:"Dolor sit amet333"}).run(conn, function(err, res) {
console.log(res);
});
});

五、删除表数据
1.删除指定行数据(注:假如只一行的话,那删除成功后,字段内容也被清空了)

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").filter({id: 6}).delete().run(conn, function(err, res) {
console.log(res);
});
});

2.清空表所有数据(包括字段内容)

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table("dc_universe").delete().run(conn, function(err, res) {
console.log(res);
});
});

六、查询
1.查询所有数据库

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn, callback) {
r.dbList().run(conn, function(err, res) {
console.log(res);
});
});

2.查询所有的表

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn, callback) {
r.db('test').tableList().run(conn, function(err, res) {
console.log(res);
});
});

3.查看表的多行数据

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('test').table('dc_universe').getAll(1,2,3).run(conn, function(err, cursor) {
cursor.each(function(err, universe) {
console.log(universe);
console.log(universe.title);
});
});
});

4.根据主键查询某一行数据、某列的值
方式一:

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn, callback) {
r.db('test').table('dc_universe').get(1).run(conn, function(err, res) {
console.log(res);
console.log(res.title);
console.log(res.content);
});
});

方式二:使用getField关键字

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn, callback) {
r.db('test').table('dc_universe').get(1).getField('title').run(conn, function(err, res) {
console.log(res);
});
});

5.遍历stf/users表的数据

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
r.db('stf').table('users').run(conn, function(err, cursor) {
cursor.each(function(err, user) {
console.log(user.name,user.email);
});
});
});

6.使用filter关键字(filter相当于where条件)

r = require('rethinkdb')
r.connect({ host: 'localhost', port: 28015 }, function(err, conn, callback) {
r.db('test').table('dc_universe').filter({state: 50,status:'published'}).run(conn, function(err, cursor) {
cursor.each(function(err, universe) {
console.log(universe);
});
});
});
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞

楼主问下,你删除表中的一行,id是主键么? stf上的表devices没看到主键id

这怎么删除devices表中的脏数据呢?
r.db("stf").table("devices").filter({id:17}).delete() 这种的没删除掉,貌似主键不是前面那个行数

蓝蓝 回复

换另外一种方式删除了,r.db("stf").table("devices").filter({'serial':'LE67A06300393854'}).delete()

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up