arangodb - 无法从数据集中提取对象值以进行比较或应用过滤器
问题描述
Q.22 编写一个 MongoDB 查询来查找在许多调查日期中在 ISODate "2014-08-11T00:00:00Z" 上获得“A”级和得分 11 的餐厅的餐厅 ID、名称和等级
数据格式如下:
[
{
"_key": "2451925",
"_id": "restaurants/2451925",
"_rev": "_buC4Kd2---",
"address": {
"building": "1007",
"coord": [
-73.856077,
40.848447
],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{
"date": {
"$date": 1393804800000
},
"grade": "A",
"score": 2
},
{
"date": {
"$date": 1378857600000
},
"grade": "A",
"score": 6
},
{
"date": {
"$date": 1358985600000
},
"grade": "A",
"score": 10
},
{
"date": {
"$date": 1322006400000
},
"grade": "A",
"score": 9
},
{
"date": {
"$date": 1299715200000
},
"grade": "B",
"score": 14
}
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
},
{
"_key": "2451926",
"_id": "restaurants/2451926",
"_rev": "_buC4Kd2--A",
"address": {
"building": "469",
"coord": [
-73.961704,
40.662942
],
"street": "Flatbush Avenue",
"zipcode": "11225"
},
"borough": "Brooklyn",
"cuisine": "Hamburgers",
"grades": [
{
"date": {
"$date": 1419897600000
},
"grade": "A",
"score": 8
},
{
"date": {
"$date": 1404172800000
},
"grade": "B",
"score": 23
},
{
"date": {
"$date": 1367280000000
},
"grade": "A",
"score": 12
},
{
"date": {
"$date": 1336435200000
},
"grade": "A",
"score": 12
}
],
"name": "Wendy'S",
"restaurant_id": "30112340"
}]
我正在尝试使用上面给定的 ISODate 过滤掉日期。我正在使用 date_timestamp 函数将上述内容转换为日期在数据中的存储方式。
我无法过滤日期,因为它们似乎包含在 {"$date":1393804800000} 中。在 g 中尝试循环表示找到了一个对象,而不是一个集合或数组。应用过滤器并使用 date_timestamp() 检查相等性返回空值数组 []、[] 等。
for r in restaurants
for g in r.grades
let d=date_timestamp("2014-08-11T00:00:00Z")
return {date:g.date,target_date:d}
请帮忙,谢谢
解决方案
您必须过滤对象内的字段:
LET target_date = DATE_TIMESTAMP('2014-08-11T00:00:00Z')
FOR r IN restaurants
FOR g IN r.grades
FILTER g.date.$date == target_date
RETURN {date: g.date}
推荐阅读
- ocaml - 如何更改树的类型以返回几乎任何类型的树的正确值?
- r - 在 R 中,如何使用 ggplot 在欧洲地图上绘制项目的位置及其来源?
- python - 更新 apache-beam-dataflow 和 google-cloud-bigquery 的指南
- java - 我正在验证结果集是否为空
- sql - 从雪花中的 Postgres 复制 FILTER 子句
- blogger - blogspot 分页:如何在访问标签时删除旧帖子文本并将其替换为行号?
- javascript - 新 Google 站点中的 JQuery
- reactjs - Jest 异步 componentDidMount 验收测试
- spring - 春季启动以使用来自权威机构的证书启用 SSL
- ios - 如何使 UIScrollView 向上滚动效果为 UITableView