我目前有一个类似于:
的文档class Document(db.Document):
item1 = db.StringField()
item2 = db.StringField()
我想在mongoengine中定义分片键,如this。但是,我想将分片键定义为文档ID上的hashed shard key。是否可以在mongoengine内执行此操作?如果是这样,你能引导我朝着正确的方向前进吗?
答案 0 :(得分:0)
简短回答
搜索后面的文档和代码后,似乎mongoengine中不支持此功能。
可能的解决方法
创建散列分片键时,MongoDB在幕后使用散列索引。
使用mongo shell命令在字段上手动创建散列索引。
db.collection.createIndex( { fieldName: "hashed" } )
运行以下命令查找新创建的索引的名称:
db.collection.getIndexes()
在mongoengine中使用索引的名称作为分片键字段:
class Document(db.Document):
item1 = db.stringField()
item2 = db.StringField()
meta = {
'shard_key': ('_indexName_')
}