我是MongoDB的新手,我对如何构建数据感到困惑。我需要做的是存储一组可以通过不同的键检索的对象。例如,我有对象“CustomerInfo”,它可以通过键“Customer1”,“Customer_1”,“Cust.1”,“Customer 1”等引用。
在RDMBS中,我将创建一个单独的表来存储别名,并为Customer Info数据创建一行。然后,我将使用客户提供的任何别名加入他们,并获取数据。它似乎简单明了,但到目前为止,我无法创建一个空数据库。在这种情况下,我对RDBMS的体验似乎更像是一种障碍,因为我倾向于“思考关系”而且(显然)不适用于NoSQL数据库。
欢迎提出任何建议,并提前感谢所有答案。
答案 0 :(得分:4)
如果您无法从别名转换为应用程序内的实际ID(这始终是首选),则可以选择在MongoDB文档中存储“别名”数组并在其中编制索引:
存储文件如下:
db.customers {
aliases : ["Customer1", "Customer_1", "Cust.1", "Customer 1"],
...other customer info data...
}
添加索引:
db.customers.ensureIndex({aliases:1})
然后只需查询其中任何一个,所有这些都将返回上面的文档:
db.customers.find({aliases: "Customer1"})
db.customers.find({aliases: "Customer_1"})
db.customers.find({aliases: "Cust.1"})
db.customers.find({aliases: "Customer 1"})
索引是可选的,但会显着提高性能。