MongoDB - 嵌入式文档列表中的$ addToSet

 最爱BLEU 发布于 2023-01-29 11:45

我在一个文档中有一个(mongodb)嵌入式文档列表,我有兴趣在现有列表中添加一个新的嵌入式文档.

据我所研究,我可以使用$ addToSet,我无法弄清楚MongoDB是如何决定新文档是否已经存在于嵌入文档列表中或者是否是新文档,即MongoDB如何决定是否2个嵌入式文件是否相等?

ps我所拥有的嵌入式文档不仅仅是值,它们是非常复杂的结构,所以我想知道是否有任何地方我可以定义它们之间的平等意味着什么......

1 个回答
  • $addToSet使用通常的mongodb相等规则:它将进行深入的值值比较,因此以下两个文档是相同的:

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

    (文件内的订单不保证,所以它们是相同的)

    而那些不是(成对):

    // 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" }
    

    请注意,这里没有特殊字段.您可以添加一个_id字段,但它没有特殊的语义,并且将被视为与任何其他字段一样.

    2023-01-29 11:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有