MongoDB(分片环境)中的查询结果不匹配

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) 创建了一个新的碎片数据库。 2) 创建了两个新的碎片集合(源和目标)并在其中转储数据 3) 然后,我在两个切分集合上逐个运行两个map reduce,并将两个MR的结果放在同一集合中(比如j_30052014125600)

这是完美的工作很好。我在碎片集群上运行所有这些

  • 1个分片服务器
  • 1配置服务器
  • 2个副本
问题是当我执行查询以计数文档时

db.j_30052014125600.find({“value.ID”:305763}).count(),

我得到了正确的计数2,但是当我执行find查询时

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命令,并将其结果粘贴到相关更新下。看起来一切正常:-?你能把计数句也解释一下吗?