1

私は MongoDB をまったく使用したことがなく、データを構造化する方法について混乱しています。私がする必要があるのは、さまざまなキーで取得できる一連のオブジェクトを保存することです。たとえば、「CustomerInfo」というオブジェクトがあり、「Customer1」、「Customer_1」、「Cust.1」、「Customer 1」などのキーで参照できます。

RDMBS では、エイリアスを格納する別のテーブルを作成し、顧客情報データ用に 1 つの行を作成します。次に、Customer から取得したエイリアスを使用してそれらに参加し、データにアクセスします。単純明快に思えますが、これまでのところ、空のデータベースを作成することから抜け出すことはできませんでした。この場合、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 に答える