我可以使用Python列表:
if 'myfakeuser' in list_of_usernames:
print "This user exists"
如何使用Rethinkdb执行此操作? r.db('mydb')。table('users')。get('myfakeuser')。run()在没有id设置myfakeuser时不返回任何内容或引发错误。
答案 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
所以我假设Python驱动程序也会这样做,用你的语言返回一个nil值。