r.table('table')。filter({thing:'thing'})。run(conn,function(err,result){})返回undefined

时间:2018-03-08 00:34:19

标签: rethinkdb rethinkdb-javascript

所以我试图使用以下代码过滤我的数据库:

r.table('Profiles').filter({mcname : user}).run(connection, function (err, profiles) {
                            console.log(r.table("Profiles").filter({mcname : user}).toString())
                            if (profiles.length == 0 || profiles == null) {
                                message.channel.send('No one was found by this name!')
                            } else if (profiles.length == 1) {
                                message.channel.send(`**${profiles[0].mcname}** is the IGN of **${profiles[0].name}!**`)
                            } else {
                                for (let i = 0; i < profiles.length; i++) {
                                    embed.setTitle(`Here are the users I found with that IGN! Total(${profiles.length})`)
                                    embed.addField(profiles[i].name, profiles[i].mcname)
                                }
                                message.channel.send(embed)
                            }
                        })

但它不会返回任何结果。

我期待一个数组,因为它就是它在数据库资源管理器中返回的内容,但是将其视为数组只返回undefined,并将其打印为原始显示连接信息。

任何查看结果而不是连接信息的方法,或者只是将它们打印到数组中,如果它还没有?

1 个答案:

答案 0 :(得分:0)

r.table('Profiles').filter({mcname : user})会给你一个光标。

如果你想要一个数组,你必须使用.coerceTo('array')

r.table('Profiles').filter({mcname : user}).coerceTo('array').run(...)

https://www.rethinkdb.com/api/javascript/coerce_to/