MongoDB(分片环境)中的查询结果不匹配
我正在做的是: 1) 创建了一个新的碎片数据库。 2) 创建了两个新的碎片集合(源和目标)并在其中转储数据 3) 然后,我在两个切分集合上逐个运行两个map reduce,并将两个MR的结果放在同一集合中(比如j_30052014125600) 这是完美的工作很好。我在碎片集群上运行所有这些MongoDB(分片环境)中的查询结果不匹配,mongodb,sharding,Mongodb,Sharding,我正在做的是: 1) 创建了一个新的碎片数据库。 2) 创建了两个新的碎片集合(源和目标)并在其中转储数据 3) 然后,我在两个切分集合上逐个运行两个map reduce,并将两个MR的结果放在同一集合中(比如j_30052014125600) 这是完美的工作很好。我在碎片集群上运行所有这些 1个分片服务器 1配置服务器 2个副本 问题是当我执行查询以计数文档时 db.j_30052014125600.find({“value.ID”:305763}).count(), 我得到了正确的计数2
- 1个分片服务器
- 1配置服务器
- 2个副本
db.j_30052014125600.find({“value.ID”:305763})
,
我只有一份文件
我在这里复制了一个小屏幕截图,这将帮助你们理解
为什么会这样?谁能给我解释一下吗
谢谢
更新:
mongos> db.j_30052014125600.find({"value.ID": 305763}).explain()
{
"clusteredType" : "ParallelSort",
"shards" : {
"firstset/192.168.1.1:10002,192.168.1.2:10001" : [
{
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 519034,
"nscanned" : 519034,
"nscannedObjectsAllPlans" : 519034,
"nscannedAllPlans" : 519034,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 1,
"millis" : 508,
"indexBounds" : {
},
"server" : "VM1:10002"
}
],
"secondset/192.168.1.1:10003,192.168.1.3:10004" : [
{
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 1,
"nscannedObjects" : 280944,
"nscanned" : 280944,
"nscannedObjectsAllPlans" : 280944,
"nscannedAllPlans" : 280944,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 289,
"indexBounds" : {
},
"server" : "VM2:10004"
}
]
},
"cursor" : "BasicCursor",
"n" : 1,
"nChunkSkips" : 1,
"nYields" : 0,
"nscanned" : 799978,
"nscannedAllPlans" : 799978,
"nscannedObjects" : 799978,
"nscannedObjectsAllPlans" : 799978,
"millisShardTotal" : 797,
"millisShardAvg" : 398,
"numQueries" : 2,
"numShards" : 2,
"millis" : 533
}
你能做一个
db.j_xxx.find(xxx.explain()
?@fmgonzalez:谢谢你的回复。我已经执行了explain命令,并将其结果粘贴到相关更新下。看起来一切正常:-?你能把计数句也解释一下吗?