【发布时间】:2016-11-20 10:30:45
【问题描述】:
技术:
- MongoDB 3.0.8 (MMAPv1),未分片,通过 mLab 托管在 AWS 上的专用集群,(主要、辅助和仲裁),3.7GB RAM
- MongoDB 2.3 的 C# 驱动程序
- 连接字符串:
mongodb://USER:PASS@MYMONGO1.com:1234,MYMONGO2.com:1234/DB_NAME?replicaSet=REPLICA_SET_NAME
假设
- 我收集了包含名为 Package 的字段之一的 Products。
- 有索引:“包”:1
- 永远不会删除此集合中的对象。
- 永远不会更新字段包。
- 不时插入新对象。
我每天记录一次此集合的特定计数(每次都使用相同的参数):
db.Products({"Package": "Box"}).count()
// actual code running in C#:
productsCollection.Find(p => p.Package == "Box").Count()
我希望结果每天都相同或更好。 但有时我会得到一个较小的值。第二天它又变得正确了。它在两种不同的环境中重现。
例子:
- 第 1 天:4,563,135
- 第 2 天:4,563,135
- 第 3 天:4,563,124(比预期少 11 个)
- 第 4 天:4,563,135
我试图通过 C# 和直接针对 Mongo 手动复制它,但失败了(值始终正确)。
发生了什么事?
【问题讨论】:
-
这个集合的索引是什么?是分片环境,副本集?
-
未分片(帖子的第一行)。 “Package”上有索引:1(将更新问题以包含它)
标签: c# mongodb linq mongodb-.net-driver