MongoDB - $addToSet on a list of Embedded Document

前端 未结 1 493
盖世英雄少女心
盖世英雄少女心 2021-01-04 20:37

I have a list of (mongodb) Embedded Documents within one Document and I am interested in adding a new embedded document to the list of the existing ones.

As far as

相关标签:
1条回答
  • 2021-01-04 21:26

    $addToSet uses the usual mongodb equality rules: it will do a deep value-by-value comparison, so the following two documents are identical:

    { name: "John", hobbies: ["coding", "drinking", "chess"] }
    { hobbies: ["coding", "drinking", "chess"], name: "John" }
    

    (order within documents is not guaranteed, so they are identical)

    while those aren't (pairwise):

    // compare to:
    { name: "John", hobbies: ["chess", "coding", "drinking"] } 
    
    // in arrays, the order matters:
    { name: "John", hobbies: ["coding", "drinking", "chess"] } 
    
    // field names and values are case sensitive
    { Name: "John", hobbies: ["chess", "coding", "drinking"] } 
    { name: "john", hobbies: ["chess", "coding", "drinking"] } 
    
    // additional field:
    { name: "John", lastName: "Doe", hobbies: ["chess", "coding", "drinking"] }
    
    // missing field:
    { name: "John" }
    

    Please note that there is no special field here. You can add an _id field, but it has no special semantics and will be treated just like any other field.

    0 讨论(0)
提交回复
热议问题