RethinkDB表中的特定id是如何做的?

时间:2015-09-12 23:54:56

标签: python rethinkdb

我可以使用Python列表:

if 'myfakeuser' in list_of_usernames:
    print "This user exists"

如何使用Rethinkdb执行此操作? r.db('mydb')。table('users')。get('myfakeuser')。run()在没有id设置myfakeuser时不返回任何内容或引发错误。

2 个答案:

答案 0 :(得分:1)

Python驱动程序的行为与Ruby驱动程序相同。如果密钥不存在,则返回None。

>>> my_profile = r.table('foo').get('myname').run(conn)
>>> print my_profile
>>> None

你也可以使用is_empty方法,如果值不存在则返回True值,如果值存在则返回False。

>>> doesnt_exist = r.table('foo').get_all('myname').is_empty().run(conn)
>>> print doesnt_exist
>>> True

答案 1 :(得分:0)

如果查询正确,并且没有任何错误,则不会返回任何错误,但会返回nil值。想想SQL,它返回一组空行而不是抛出错误,因为查询和服务器连接都没有错。

我不懂Python,但在JavaScript或Ruby中,将返回null / nil

在Data Exploer上运行此操作,您将获得null结果

r.table('foo').get('anivalidprimarykey')

或者在JavaScript中:

r.table('foo').get('anivalidprimarykey').run(connection)
.then(function(result) {
  console.log('r=', result)
})
.error(function(err) {
  console.log('e=', err)
})

null变量的值为result

与Ruby相同,但你得到nil值。

require 'rethinkdb'
include RethinkDB::Shortcuts
r.connect.repl
r.table(:foo).get('an_in_valid_key').run
nil

所以我假设P​​ython驱动程序也会这样做,用你的语言返回一个nil值。