Arangodb 无法从数据集中提取要比较或应用筛选器的对象值

Arangodb 无法从数据集中提取要比较或应用筛选器的对象值,arangodb,aql,Arangodb,Aql,我正在试着解决上的问题22。数据集是 Q.22编写MongoDB查询,查找在众多调查日期中,在ISODate“2014-08-11T00:00:00Z”中得分为“a”和11分的餐厅Id、名称和等级 数据格式如下: [ { "_key": "2451925", "_id": "restaurants/2451925", "_rev": "_buC4Kd2---&

我正在试着解决上的问题22。数据集是

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中尝试循环表示找到的是对象,而不是集合或数组。应用筛选器并检查与日期的相等性_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}

它应该是:
FILTER g.date.$date==date\u TIMESTAMP('2014-08-11T00:00:00Z')
。天哪,我真不敢相信我同时离得这么近又那么远!谢谢你的帮助。你能不能再次发布解决方案,请让我可以标记它已解决,并给你的帮助应有的信用。非常感谢,你不知道