1

では、ユーザーと会社のコレクションがあるとしましょう。次に、works_in という名前のエッジ コレクションを作成して、ユーザーと企業を結び付けます。次の aql クエリを使用しています。

FOR user IN Users
   LET companies = (FOR company IN (NEIGHBORS(Users, works_in, user._id, 'outbound', [], {includeData:true}))
       RETURN {company_name: company.name, company_id: company._id})
RETURN {user, companies}

そして私が得るものは次のとおりです:

[
  {
    "user": {
      "_id": "Users/45645",
      "_key": "45645",
      "_rev": "45645",
      "name": "user1",
      "city": "london",
      "age": 23
    },
    "companies": [
        {
          company_name: "company1",
          company_id: "Companies/7897"
        },
        {
          company_name: "company2",
          company_id: "Companies/7878"
        }
    ]
  },
  {
    "user": {
      "_id": "Users/465454",
      "_key": "465454",
      "_rev": "465454",
      "name": "user2",
      "city": "Paris",
      "age": 42
    },
    "companies": [
        {
          company_name: "company1",
          company_id: "Companies/7897"
        },
        {
          company_name: "company3",
          company_id: "Companies/788233"
        }
    ]
  }
]

ただし、「ユーザー」内にネストされていない「ユーザー」情報を次のように取得したいと思います。

[
  {
    "_id": "Users/45645",
    "_key": "45645",
    "_rev": "45645",
    "name": "user1",
    "city": "london",
    "age": 23,
    "companies": [
        {
          company_name: "company1",
          company_id: "Companies/7897"
        },
        {
          company_name: "company2",
          company_id: "Companies/7878"
        }
    ]
  },
  {
    "_id": "Users/465454",
    "_key": "465454",
    "_rev": "465454",
    "name": "user2",
    "city": "Paris",
    "age": 42,
    "companies": [
        {
          company_name: "company1",
          company_id: "Companies/7897"
        },
        {
          company_name: "company3",
          company_id: "Companies/788233"
        }
    ]
  }
]

次のような属性をハードコーディングすることで作成できることはわかっています

RETURN {_id: user.id, _key:user._key, companies}

しかし、問題は、表示する属性がたくさんあり、さらにユーザーが特定の属性を持っていない可能性があることです (そのため、「null」として表示されます)。

では、ユーザーを適切に「ネスト解除」する方法を知っている人はいますか? ありがとうございました

4

1 に答える 1