1

我对 MongoDB 完全陌生,我对如何构建数据感到困惑。我需要做的是存储一组可以通过不同键检索的对象。例如,我有对象“CustomerInfo”,它可以通过键“Customer1”、“Customer_1”、“Cust.1”、“Customer 1”等来引用。

在 RDMBS 中,我将创建一个单独的表来存储别名,并为客户信息数据提供一行。然后我会加入他们,使用从客户那里获得的任何别名,并获取数据。它看起来简单明了,但是到目前为止,我无法通过创建一个空数据库。在这种情况下,我在 RDBMS 方面的经验似乎更像是一种障碍,而不是一种资产,因为我倾向于“考虑关系”并且它(显然)不适用于 NoSQL 数据库。

欢迎任何建议,提前感谢所有答案。

4

1 回答 1

5

如果您无法在应用程序中从别名转换为实际 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"})

该索引是可选的,但会显着提高性能。

于 2012-10-12T11:36:46.190 回答