-
Type:
Bug
-
Resolution: Duplicate
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We are running a sharded mongodb cluster (v2.6.1).
Counting and iterating returns different results.
For example:
mongos> db.offer.count({shopId:6160})
520472
mongos> db.offer.find({shopId:6160}).itcount()
516564
Projection of _id returns correctly the same:
mongos> db.offer.find({shopId:6160},{_id:1}).itcount()
516564
The indexes are as follows:
mongos> db.offer.getIndexKeys()
[
{
"_id" : 1
},
{
"bokey" : 1
},
{
"categoryBokey" : 1
},
{
"mappedCatalogCategory" : 1
},
{
"clickCount" : 1
},
{
"missingSince" : 1
},
{
"shopId" : 1,
"merchantId" : 1
},
{
"asin" : 1
},
{
"importGroup" : 1,
"importId" : 1,
"missingSince" : 1
},
{
"shopId" : 1,
"_id" : 1
}
]
Using explicitly either index shopId, _id or shopId, merchantId returns the same number of documents as itcount:
mongos> db.offer.find({shopId:6160},{_id:1}).hint({shopId:1, _id:1}).explain()
{
"clusteredType" : "ParallelSort",
"shards" : {
"offerStoreDE1/s479:27017,s480:27017,s483:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 94115,
"nscannedObjects" : 94115,
"nscanned" : 94115,
"nscannedObjectsAllPlans" : 94115,
"nscannedAllPlans" : 94115,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 735,
"nChunkSkips" : 0,
"millis" : 695,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s480:27017",
"filterSet" : false
}
],
"offerStoreDE2/s127:27017,s131:27017,s136:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 46393,
"nscannedObjects" : 48801,
"nscanned" : 48801,
"nscannedObjectsAllPlans" : 48801,
"nscannedAllPlans" : 48801,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 381,
"nChunkSkips" : 2408,
"millis" : 454,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s131:27017",
"filterSet" : false
}
],
"offerStoreDE3/s124:27017,s129:27017,s132:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 55811,
"nscannedObjects" : 57100,
"nscanned" : 57100,
"nscannedObjectsAllPlans" : 57100,
"nscannedAllPlans" : 57100,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 446,
"nChunkSkips" : 1289,
"millis" : 526,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s129:27017",
"filterSet" : false
}
],
"offerStoreDE4/s125:27017,s191:27017,s216:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 46573,
"nscannedObjects" : 46784,
"nscanned" : 46784,
"nscannedObjectsAllPlans" : 46784,
"nscannedAllPlans" : 46784,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 365,
"nChunkSkips" : 211,
"millis" : 397,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s216:27017",
"filterSet" : false
}
],
"offerStoreDE5/s484:27017,s487:27017,s488:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 125006,
"nscannedObjects" : 125006,
"nscanned" : 125006,
"nscannedObjectsAllPlans" : 125006,
"nscannedAllPlans" : 125006,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 976,
"nChunkSkips" : 0,
"millis" : 1577,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s487:27017",
"filterSet" : false
}
],
"offerStoreDE6/s561:27017,s562:27017,s563:27017" : [
{
"cursor" : "BtreeCursor shopId_1__id_1",
"isMultiKey" : false,
"n" : 148666,
"nscannedObjects" : 148666,
"nscanned" : 148666,
"nscannedObjectsAllPlans" : 148666,
"nscannedAllPlans" : 148666,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 1161,
"nChunkSkips" : 0,
"millis" : 2274,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"_id" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s563:27017",
"filterSet" : false
}
]
},
"cursor" : "BtreeCursor shopId_1__id_1",
"n" : 516564,
"nChunkSkips" : 3908,
"nYields" : 4064,
"nscanned" : 520472,
"nscannedAllPlans" : 520472,
"nscannedObjects" : 520472,
"nscannedObjectsAllPlans" : 520472,
"millisShardTotal" : 5923,
"millisShardAvg" : 987,
"numQueries" : 6,
"numShards" : 6,
"millis" : 2276
}
mongos> db.offer.find({shopId:6160},{_id:1}).hint({shopId:1, merchantId:1}).explain()
{
"clusteredType" : "ParallelSort",
"shards" : {
"offerStoreDE1/s479:27017,s480:27017,s483:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 94115,
"nscannedObjects" : 94115,
"nscanned" : 94115,
"nscannedObjectsAllPlans" : 94115,
"nscannedAllPlans" : 94115,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 735,
"nChunkSkips" : 0,
"millis" : 723,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s480:27017",
"filterSet" : false
}
],
"offerStoreDE2/s127:27017,s131:27017,s136:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 46393,
"nscannedObjects" : 48801,
"nscanned" : 48801,
"nscannedObjectsAllPlans" : 48801,
"nscannedAllPlans" : 48801,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 381,
"nChunkSkips" : 2408,
"millis" : 438,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s131:27017",
"filterSet" : false
}
],
"offerStoreDE3/s124:27017,s129:27017,s132:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 55811,
"nscannedObjects" : 57100,
"nscanned" : 57100,
"nscannedObjectsAllPlans" : 57100,
"nscannedAllPlans" : 57100,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 446,
"nChunkSkips" : 1289,
"millis" : 526,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s129:27017",
"filterSet" : false
}
],
"offerStoreDE4/s125:27017,s191:27017,s216:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 46573,
"nscannedObjects" : 46784,
"nscanned" : 46784,
"nscannedObjectsAllPlans" : 46784,
"nscannedAllPlans" : 46784,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 365,
"nChunkSkips" : 211,
"millis" : 389,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s216:27017",
"filterSet" : false
}
],
"offerStoreDE5/s484:27017,s487:27017,s488:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 125006,
"nscannedObjects" : 125006,
"nscanned" : 125006,
"nscannedObjectsAllPlans" : 125006,
"nscannedAllPlans" : 125006,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 976,
"nChunkSkips" : 0,
"millis" : 965,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s487:27017",
"filterSet" : false
}
],
"offerStoreDE6/s561:27017,s562:27017,s563:27017" : [
{
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"isMultiKey" : false,
"n" : 148666,
"nscannedObjects" : 148666,
"nscanned" : 148666,
"nscannedObjectsAllPlans" : 148666,
"nscannedAllPlans" : 148666,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 1161,
"nChunkSkips" : 0,
"millis" : 2496,
"indexBounds" : {
"shopId" : [
[
6160,
6160
]
],
"merchantId" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]
},
"server" : "s563:27017",
"filterSet" : false
}
]
},
"cursor" : "BtreeCursor shopId_1_merchantId_1",
"n" : 516564,
"nChunkSkips" : 3908,
"nYields" : 4064,
"nscanned" : 520472,
"nscannedAllPlans" : 520472,
"nscannedObjects" : 520472,
"nscannedObjectsAllPlans" : 520472,
"millisShardTotal" : 5537,
"millisShardAvg" : 922,
"numQueries" : 6,
"numShards" : 6,
"millis" : 2500
}
mongos>
So why count counts too much documents?
- duplicates
-
SERVER-3645 Sharded collection counts (on primary) can report too many results
-
- Closed
-