设置复合索引时出错

2023-12-08

我想在我的 mongoDB 中的 fb_id 和 ts 上设置复合索引。所以我做了:

PRIMARY> db.sessions.ensureIndex( { fb_id: 1, ts: 1 }, { unique:true } );

但我收到以下错误:

E11000 duplicate key error index: tracking.sessions.$fb_id_1_ts_1  dup key: { : null, : null }

所以我使用检查了这个集合中的索引db.sessions.getIndexes(), I got:

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "tracking.sessions",
        "name" : "_id_"
    }
]

对我来说,它看起来不像是重复的钥匙。我在这里做错了什么?


MongoDB 告诉您,您有多个文档(多个)具有相同的内容fb_id and ts价值观,null价值观。换句话说,有些文件没有fb_id and ts字段。因此,它违反了整个集合的唯一约束。

作为解决方法,您应该看看sparse索引。引用自文档:

稀疏索引仅包含具有以下特征的文档的条目 索引字段。任何缺少该字段的文档都不是 索引。索引是“稀疏”的,因为当 值缺失。

也可以看看:

  • mongo 中的稀疏索引和空值
  • 为什么 DuplicateKeyError: E11000 重复键错误索引: test.test.$notification_1 dup key: { : null }

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置复合索引时出错 的相关文章

  • mongodb 和 pymongo 文档大小 16Mb 限制

    我正在使用 Windows 上的 showIncludes 标志和 nix 上的 H 标志来分析构建中的包含内容 我正在用 python 脚本解析这些信息 包含的每个文件都变成一个对象 列出其子文件 它包含的文件 和祖先 包含该文件的包含路
  • 在这种情况下如何填充 Mongoose?

    const userSchema new mongoose Schema email type String unique true password String notifications notifiId type Schema Ty
  • MongoDB 按数组内部元素分组

    我有一个文章列表 每篇文章都有一个数组属性 其中列出了其中提到的各个个人 id oid 52b632a9e4f2ba13c82ccd23 providerName The Guardian url http feeds theguardia
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • MEAN 堆栈文件上传

    我最近开始使用 MEAN Stack 进行编程 目前正在实现某种社交网络 一直使用 MEAN io 框架来做到这一点 我现在的主要问题是让文件上传正常工作 因为我想做的是将文件从表单接收到 AngularJS 控制器中 并将其与更多信息一起
  • 如何在猫鼬中获得多个结果并将其合并为一个响应

    在 API 路由 调用中 我希望有 3 个 mongoose 查询 然后组合结果以形成响应 json Query student countDocuments then stundentNumber gt return stundentNu
  • MongoDB 将通过 $lookup 聚合运算符使用分片

    lookup是 MongoDB 3 2 中的新增功能 它对同一数据库中的未分片集合执行左外联接 以从 联接 集合中过滤文档进行处理 To use lookup the from集合不能被分片 另一方面 分片是一种有用的水平扩展方法 一起使用
  • 更新 MongoDB 中精确元素数组中的字段

    我有一个结构如下的文档 id 43434 heroes nickname test items nickname test2 items Can I set的第二个元素items数组中嵌入对象的数组heros with nickname t
  • 如何获取从中提取数据的服务器的服务器地址

    我知道我们使用cursor getServerAddress 在Java 驱动程序中拥有它 但是 我在 C 中找不到任何相关的调用 不幸的是 在深入研究 C 驱动程序源代码 以及 Java 源代码以了解它在做什么 之后 用作获取一部分的实际
  • MongoDB 添加以变量值命名的新字段

    我的问题是 鉴于像这样的文件很少 deliveryDay 2021 01 14 plate name pasta quantity 1 deliveryDay 2021 01 16 plate name pasta quantity 3 d
  • 如何根据 node.js 中用户的输入创建 mongodb 查询?

    目前在我的应用程序中我存储了不同的论坛帖子 用户可以添加新消息并创建新帖子 其他用户在显示内容时可以对其进行过滤 这样他们就不会看到他们之前阻止的特定用户上传的内容 每个用户都表示为以下组合device id and display nam
  • 如何使用 pollingThrottle 和 pollingInterval?

    所以我的应用程序中有一些东西我不需要立即反应并找到有关属性的信息轮询节流阀 and 轮询间隔在文档中 所以这里基本上是我设法找到的有关这些属性的所有信息 pollingIntervalMs 数 仅限服务器 在服务器上观察时轮询此查询的频率
  • Mongoose 在结果的 _id 字段中返回“new ObjectId”

    当我尝试查询时 结果包含 id其中包含 new ObjectId 的字段 如何避免这种 new ObjectId 并仅将哈希值包含为字符串 由于此问题 将数据作为 JSON 响应发送回失败 下面是一个基本的demo 我的查询代码 book
  • 使用 MongoDB PHP 驱动程序时的安全问题

    我有在 MYSQL 上保护 sql 注入的经验 但是在使用 php 驱动程序的 MongoDB 上我应该注意什么 在大多数页面中 我通过 GET POST 和搜索 插入系统获取数据 我通过 UDID 其他字段进行搜索 并且可以插入任何字符串
  • 如何避免 mongodb 聚合框架中的 $pushing null

    如果该字段不存在 push 会聚合空值 我想避免这种情况 有没有办法为 push 运算符创建子表达式 以便跳过空值而不将其推入结果数组中 聚会有点晚了 但是 我想做同样的事情 发现我可以用这样的表达式来完成它 Pushes events o
  • 如何修改副本集配置?

    我正在运行一个 mongo 2 节点集群 并使用此副本集配置 config id repl1 members id 0 host localhost 15000 id 1 host 192 168 2 100 15000 我必须将这两个节点
  • Mongoose 5.x 不允许传递大量运算符

    聚合查询返回错误 Mongoose 5 x 不允许将操作符传递给Model aggregate 代替Model aggregate match skip do Model aggregate match skip 我正在使用 mongoos
  • node-mongodb-native MongoClient 意外关闭连接

    我一直在 mongodb 中搜索大量意外关闭的连接 但只能找到希望关闭连接的人提出的问题 我正在使用 node mongodb native 连接到数据库 但我不断收到看似随机的 错误 连接已关闭 消息 如果我手动重试请求 浏览器刷新 则请
  • 使用 Pymongo 从 Windows 连接到 AWS 实例上的 MongoDB

    此行反复抛出错误 client MongoClient ec2 12 345 67 89 us east 2 compute amazonaws com 27017 ssl True ssl keyfile C mongo pem 由于显而
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro

随机推荐