3

我有一个用户集合,一个用户日历(用户:日历具有 1:1 关系,但并非所有用户都拥有日历):

users: {"name":"John","role":admin [more fields]}
calendars: {"color":"blue",owner: "users/john"}

我必须返回一份文件:

{"name":"John","role":admin,[all fields from the users collection],calendar:cal}

有没有办法在不列出用户文档中的属性的情况下做到这一点?

for cal in zcalendar
    for user in zuser filter user._id == cal.owner
return ...
4

1 回答 1

2

您可以使用MERGE文档功能,例如:

FOR cal IN zcalendar
    FOR user IN zuser
        FILTER user._id == cal.owner
        LET calDoc = {
            'calendar': cal
        }
        RETURN MERGE(user, calDoc)

它返回这个结构:

[
  {
    "_id": "...",
    "_rev": "...",
    "_key": "...",
    "name": "John",
    "role": "admin",
    "calendar": {
      "_id": "...",
      "_rev": "...",
      "_key": "...",
      "color": "blue",
      "owner": "..."
    }
  }
]
于 2014-12-01T10:17:21.287 回答