我試圖分片我的數據庫,但我有一個問題與findAndModifyMongoDB的分片findAndModify
我有一個模式,它看起來像這樣(myCollection)將:我設置
{
"_id": "508206a9f6ded00c50f59469"
"DatabaseId" : 91,
"TypeId" : "5e62603c-8",
"ItemId" : "734",
"UserId" : "d14e3afd-d8b3-4c37-87cd-db5d89291c44"
}
我shardkey這樣的:
db.runCommand({enablesharding:"myDb"});
db.runCommand({
shardcollection: "myDb.myCollection",
key: {
"DatabaseId" : 1,
"TypeId" : 1,
"ItemId" : 1
}
});
比方說架構上面插入到數據庫中。
現在我運行此查詢:
db.myCollection.findAndModify({
query: {
"DatabaseId" : 91,
"TypeId" : "5e62603c-8",
"ItemId" : "734",
"UserId" : "d14e3afd-d8b3-4c37-87cd-db5d89291c44"
},
remove: true
});
我從運行findAndModify得到這個錯誤:
findAndModifyFailed failed: {
"errmsg" : "exception: query for sharded findAndModify must have shardkey",
"code" : 13343,
"ok" : 0
}
爲什麼它說這個任何人都可以解釋一下嗎?或爲它的解決方案?在我看來,我正在做我需要的一切。
對不起,GroupId和Identifier == TypeId和ItemId。我在我的問題上做了改變。 – ehftwelve
根據:http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/#sharded-collections「在分片環境中使用findAndModify時,查詢必須包含針對所有操作的分片鍵分片集合的分片集羣「。 – Sebastian