【发布时间】:2019-05-04 02:44:50
【问题描述】:
我正在尝试索引主集合使用散列分片的嵌入式文档。 样本结构:
class ED(EmbeddedDocument):
id = StringField(primary_key=true)
meta = {
'indexes': [{'fields': ['EDs.id'], 'unique': True}]
}
class D(Document):
id = StringField(primary_key=true)
EDs = EmbeddedDocumentListField(ED)
现在,我在集合 D 中添加了一个分片。
sh.shardCollection("db.d", { "_id" : "hashed" } )
现在,由于我在 ED 的 id 上添加了索引,因此我无法保存文档。
$cmd failed: cannot create unique index over { EDs._id: 1 } with shard key pattern { _id: "hashed" }
但是,当我们从 ED 中删除此元数据时,它会起作用。当我删除分片时它也有效。 那么,我们如何才能在嵌入式文档 ED 的 id 上实现这种索引呢?
【问题讨论】:
-
您可能应该提供更多信息。我什至不认识代码的类型。对于有关 MongoDB 的问题,shell 语法和 BSON 文档提高了获得有用答案的可能性。
-
这是 Python 吗?一些上下文会有所帮助
标签: mongodb