我有一个mongo集合,每个文档包含一个嵌套的对象数组,如下所示:
[
{ item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },
{ item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },
{ item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },
{ item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]
我希望库存中的仓库字段对于每个物料凭证都是唯一的。
示例:
{ item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "A", qty: 15 } ] }
不应插入先前的记录,因为仓库对于单个文档不是唯一的。
哪种类型的indez应该确保此限制。
答案 0 :(得分:0)
索引的目的是加快选择查询的速度,而不是数据验证。此数据验证必须在应用程序层中实现。
您必须避免不必要的索引,因为它会降低MongoDB的速度。 每个索引都必须在选择查询中进行检查(尝试选择获奖方案),并在文档插入/更新/删除时进行更新。