mongos> sh.status()
|
--- Sharding Status ---
|
sharding version: {
|
"_id" : 1,
|
"version" : 3,
|
"minCompatibleVersion" : 3,
|
"currentVersion" : 4,
|
"clusterId" : ObjectId("52aaf42ca34a2646b68b9333")
|
}
|
shards:
|
{ "_id" : "shard0000", "host" : "localhost:27001" }
|
{ "_id" : "shard0001", "host" : "localhost:27002" }
|
{ "_id" : "shard0002", "host" : "localhost:27003" }
|
databases:
|
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
|
{ "_id" : "test", "partitioned" : true, "primary" : "shard0000" }
|
test.somecollection
|
shard key: { "_id" : 1 }
|
chunks:
|
shard0001 1
|
shard0002 1
|
shard0000 1
|
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : 3 } on : shard0001 Timestamp(2, 0)
|
{ "_id" : 3 } -->> { "_id" : 6 } on : shard0002 Timestamp(3, 0)
|
{ "_id" : 6 } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(3, 1)
|
|
mongos> db.somecollection.find()
|
{ "_id" : 1, "data" : "one" }
|
{ "_id" : 3, "data" : "three" }
|
{ "_id" : 6, "data" : "six" }
|
{ "_id" : 2, "data" : "two" }
|
{ "_id" : 4, "data" : "four" }
|
{ "_id" : 7, "data" : "seven" }
|
{ "_id" : 5, "data" : "five" }
|
{ "_id" : 8, "data" : "eight" }
|
{ "_id" : 9, "data" : "nine" }
|
{ "_id" : 10, "data" : "ten" }
|
mongos> db.somecollection.find().count()
|
10
|
|
// Connect directly to a shard and insert a document that shouldn't be on that shard (an orphan document)
|
$ mongo --port 27001
|
MongoDB shell version: 2.4.8
|
connecting to: 127.0.0.1:27001/test
|
> db.somecollection.find()
|
{ "_id" : 6, "data" : "six" }
|
{ "_id" : 7, "data" : "seven" }
|
{ "_id" : 8, "data" : "eight" }
|
{ "_id" : 9, "data" : "nine" }
|
{ "_id" : 10, "data" : "ten" }
|
> db.somecollection.insert( { _id : 1, data : "one (orphan document)" } )
|
> db.somecollection.find()
|
{ "_id" : 6, "data" : "six" }
|
{ "_id" : 7, "data" : "seven" }
|
{ "_id" : 8, "data" : "eight" }
|
{ "_id" : 9, "data" : "nine" }
|
{ "_id" : 10, "data" : "ten" }
|
{ "_id" : 1, "data" : "one (orphan document)" }
|
|
// Back on mongos, the orphan document is not visible. This is correct.
|
mongos> db.somecollection.find()
|
{ "_id" : 1, "data" : "one" }
|
{ "_id" : 3, "data" : "three" }
|
{ "_id" : 6, "data" : "six" }
|
{ "_id" : 2, "data" : "two" }
|
{ "_id" : 4, "data" : "four" }
|
{ "_id" : 7, "data" : "seven" }
|
{ "_id" : 5, "data" : "five" }
|
{ "_id" : 8, "data" : "eight" }
|
{ "_id" : 9, "data" : "nine" }
|
{ "_id" : 10, "data" : "ten" }
|
|
// But count() includes it. This is wrong.
|
mongos> db.somecollection.find().count()
|
11
|
|