我试图通过主键在RethinkDB中获取数据。但是,我的代码找不到数据。
我正在使用RethinkDBDash驱动程序来获取数据,因此,我将Rethink定义为client.db。该ID是我从API抓取的数据中的切片数组,当我对其进行控制台记录时,该值为1。我通过简单地输入整数1进行了测试,但是它可以抓取数据。使用API中的数据来抓取它,则返回null。我试图在其上获取数据的表被命名为带有主键sid(最初为id)的建议。该表如下所示:
XElement myElement = e.Data;
// 1st way using method chaining
var id1 = myElement.Element("inserted").Element("row").Element("id").Value;
// 2nd way using XPath
using System.Xml.XPath;
var id2 = myElement.XPathSelectElement("inserted/row/id").Value;
在过去的项目中,我已经能够使用这种确切的方法从主键中毫无问题地获取数据。
{
"author": {
"id": "535986058991501323"
} ,
"sid": 1 ,
"status": "PENDING" ,
"suggestion": "wtf"
}
从获取数据后,我希望控制台日志的值为1。但是,我得到的是一条错误消息,内容为:
const id = args.slice(0).join(' ');
console.log(id);
const data = await client.db.table('suggestions').get(id).run();
console.log(data.sid);
答案 0 :(得分:0)
我发现了这个问题,主键期望一个整数而不是一个字符串,所以它寻找一个整数而不是一个字符串,并且由于找不到它,所以抛出了erorr。要修复它,我只需要将数据从整数更改为字符串即可。您也可以只使用parseInt函数将数组从字符串转换为整数。