2017-10-12 159 views

回答

2

以下查詢應該執行。我把解釋作爲評論內的註釋。我的示例假定文檔存在於名爲collection的集合中:

FOR doc IN collection 
    /* any filter condition to find the document(s) in question. 
    you should make sure this uses an index if there is a substantial 
    number of documents in the collection */ 
    FILTER doc.name == 'tyler' 

    /* enumerate the old likes and return them as is if they are not 
    of type object or do not have a 'movie' attribute. If they are 
    objects and have a 'movie' attribute, patch them with a 'movie' 
    value of 'whatever' */ 
    LET newLikes = (
    FOR oldLike IN doc.likes 
     RETURN 
     (TYPENAME(oldLike) == 'object' && HAS(oldLike, 'movie')) ? 
      { movie: 'whatever' } : 
      oldLike 
) 

    /* finally update the matching document(s) with the new likes */ 
    UPDATE doc WITH { likes: newLikes } IN collection 
+0

非常感謝您的詳細解答。 –