#MongoDB
共 19 篇文章
MongoDB change stream 重连失败:resume point may no longer be in the oplog
核对出错时历史窗口与业务检查点,明确缺口重新同步和未来保留策略,不承诺找回已删除事件。
MongoDB 数组范围查询匹配了没有区间内元素的文档
MongoDB 数组范围条件可能由不同元素分别满足。用查询 $elemMatch 约束同一元素,并区分文档筛选、完整数组返回及标量字段。
MongoDB TTL 索引不删除文档:epoch 数字不是 BSON Date
MongoDB TTL 不删除文档时,先核对索引字段与 BSON 类型。转换数字日期前确认秒或毫秒、备份过期数据,并检查后台删除与节点角色。
MongoDB 复合唯一索引报 E11000,冲突的却是两个 null
复合唯一索引的缺失字段也会形成 null 键。按完整组合区分重复,核对 sparse 与 partial 的纳入范围,并在受控写入窗口替换索引、预先准备约束回退。
MongoDB 查询报 Projection cannot have a mix of inclusion and exclusion
MongoDB find 投影不能混用普通字段的包含和排除。按输出字段约定选择投影模式,核对 _id 例外,避免修复报错时扩大接口返回范围。
MongoDB 用 $not: null 查询非空字段时报 invalid use of $not
顶层标量字段需要存在且非null时可使用$ne:null。区分字段缺失、显式空值和空字符串,修正$not语法,并保留数组路径的适用边界。
Mongoose find 能查到 ID,aggregate 却返回空数组
普通查询按 schema 转换参数,聚合管道不会自动转换。确认存储为 ObjectId 后,在输入边界校验并构造 BSON 值,保留授权条件。
MongoDB 连接串报 Password contains unescaped characters:只编码凭据部分
MongoDB URI 密码含特殊字符导致解析失败,分别编码原始用户名和密码,检查重复编码,区分解析、认证与网络故障。
MongoDB 加上业务库名后 Authentication failed:核对 authSource
同一 MongoDB 账号不带库名可连接,指定业务库后认证失败,检查认证库、用户所属库与角色,避免删除数据卷或一律改成 admin。
MongoDB C# 更新报 immutable field _id:查询投影不会禁止写入 ID
C# 查询排除 _id 后仍可能通过反射 Set 写入映射属性。核对最终更新定义,用允许更新的字段构造请求,并保留目标 ID。
MongoDB find 能读 secondary,db.command 却报 not primary:显式传递 readPreference
MongoDB Node 驱动连接 secondary 后,普通查询正常但 db.command 报 not primary 时,把 readPreference 放进第二参数,保留命令支持、权限和复制一致性条件。
MongoDB 报 Transaction numbers are only allowed:先确认事务拓扑
MongoDB standalone 不支持多文档事务。先核对服务拓扑与实际配置,再受控迁移到当前支持的复制集,保留数据路径、客户端认证、成员认证与 TLS。
MongoDB Node.js 的 findOneAndUpdate 更新成功却返回旧文档
原生 Node.js 驱动默认返回更新前文档。区分 returnDocument 与 includeResultMetadata,并按实际版本修正选项和结果读取,避免误重试写入。
MongoDB 更新报 No array filter found:$[session] 与过滤器名称必须一致
MongoDB 数组更新报 No array filter found 时,对照 $[session] 与过滤器标识符,区分文档查询和数组元素筛选;核对 Spring 原始字段映射、写入范围与追加重试。
MongoDB 聚合 $size 遇到缺失字段时报 must be an array
用 $isArray 和 $cond 区分数组与缺失、null、错误类型,保留异常标记;避免仅用 ifNull 或批量改文档掩盖数据问题。
Compass 导出报 Path collision:父对象与子字段不能重复投影
Compass 导出 CSV 报 Path collision 时,先查父对象和子字段是否重复投影。按输出要求整理字段,核对记录范围与类型,不修改集合来试错。


