我有一个包含状态字段的事务表。 状态可以是已完成,已取消和正在进行中。 如果我将事务表分成三个单独的表,即OngoingTrans,CompletedTrans,CancelledTrans,它会有用吗。
这种行为在关系数据库中很有用,但在mongodb中有用吗?
答案 0 :(得分:0)
根据mongodb.com上提供的MongoDB最佳实践白皮书 MongoDB Best practices
避免在查询中出现否定。与大多数数据库系统一样, MongoDB没有索引缺少值和 否定条件可能需要扫描所有文件。如果 否定是唯一的条件而且它没有选择性(因为 例如,查询订单表中的99% 订单已完成,以识别尚未完成的订单 已完成),所有记录都需要扫描。
他们建议不要在查询中使用否定,以便将其单独存储