对象数组数据类型
问题描述:
此AQL返回我想要使用的对象。对象数组数据类型
const keys = db._query(aql`
FOR huis IN test
FILTER huis._key in ${req.queryParams.keys}
RETURN {
'key': huis._key,
'adres': huis.adres,
'postcode': huis.postcode,
'plaats': huis.plaats
}
`);
这将返回该对象:
[
{
"key": "374875",
"adres": "Klaverstraat 7",
"postcode": "2197GV",
"plaats": "Leiden"
}
]
然后我想借关键,像这样:
keys[0].key
这工作在JavaScript中,当我做小提琴,但不是在福克斯。
const test = [
{
"key": "374875",
"adres": "Klaverstraat 7",
"postcode": "2197GV",
"plaats": "Leiden"
}
]
console.log(test[0].key)
为什么这回 '未定义' 在福克斯,但正确的数据在一个小提琴?
答
此福克斯代码:
router.get('/', function (req, res) {
const test = [
{
"key": "374875",
"adres": "Klaverstraat 7",
"postcode": "2197GV",
"plaats": "Leiden"
}
];
console.log(test[0].key);
res.status(200).send(test[0]);
}, 'test1')
.summary('test1')
.description('test1');
通过REST返回:
{
"key": "374875",
"adres": "Klaverstraat 7",
"postcode": "2197GV",
"plaats": "Leiden"
}
登录到ArangoDB日志:
当你刚开通过查询获取数据,在读取结果内容之前,您需要确保查询已完成。
看看这段代码:
router.get('/', function (req, res) {
const keys = db._query(aql`
FOR huis IN test
FILTER huis._key == "374875"
RETURN {
'key': huis._key,
'adres': huis.adres,
'postcode': huis.postcode,
'plaats': huis.plaats
}
`).toArray();
console.log(keys[0].key);
res.status(200).send(keys);
}, 'test1')
.summary('test1')
.description('test1');
这里FILTER
条件已经改变,.toArray()
查询已被执行之后被添加。这可以确保查询完成,然后keys
的内容就像您期望的那样。
强制查询返回带有'toArray()'作品的数组。 – Thijs