Die*_*ego 1 database mongodb nosql
我对 MongoDB 完全陌生,我对如何构建数据感到困惑。我需要做的是存储一组可以通过不同键检索的对象。例如,我有对象“CustomerInfo”,它可以被键“Customer1”、“Customer_1”、“Cust.1”、“Customer 1”等引用。
在 RDMBS 中,我将创建一个单独的表来存储别名,并有一行用于客户信息数据。然后我会加入他们,使用我从客户那里得到的任何别名,并获取数据。这看起来简单明了,但到目前为止,我无法超越创建一个空数据库。在这种情况下,我在 RDBMS 方面的经验似乎更像是一种障碍而不是一种资产,因为我倾向于“考虑关系”并且它(显然)不适用于 NoSQL 数据库。
欢迎任何建议,提前感谢所有答案。
如果您无法在应用程序中从别名转换为实际 ID(这始终是首选),一个选择是简单地在 MongoDB 文档中存储一个“别名”数组并在其上建立索引:
像这样存储文件:
db.customers {
aliases : ["Customer1", "Customer_1", "Cust.1", "Customer 1"],
...other customer info data...
}
Run Code Online (Sandbox Code Playgroud)
添加您的索引:
db.customers.ensureIndex({aliases:1})
Run Code Online (Sandbox Code Playgroud)
然后简单地查询它们中的任何一个,所有这些都将返回上面的文档:
db.customers.find({aliases: "Customer1"})
db.customers.find({aliases: "Customer_1"})
db.customers.find({aliases: "Cust.1"})
db.customers.find({aliases: "Customer 1"})
Run Code Online (Sandbox Code Playgroud)
该索引是可选的,但会显着提高性能。
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |