2

新しいプロジェクトで MongoDB の使用を開始しており、次のスキームを使用して顧客データを挿入したいと考えていました。

{
    admin: {mail: "", realName: {first: "", last: ""}, address: {street: "", city: "", state: ""}, payment: {type: "", blz: "", account: ""}},
    users: [
        {mail: "", password: "", realName: {first: "", last: ""}},
        ...
    ],
    categories: [
        {name: "", assignedUsers: [{ID: "", readOnly: true}, ...], entries: [
            {name: "", tags: "", site: "", user: "", pass: "", notes: ""}
        ],
        ...
    ]
}

しかし、たとえば、"users" 配列内のユーザーの 1 人をメール アドレスで取得したり、1 人のユーザーが割り当てられているすべてのカテゴリを ID で取得したりすることは、簡単にはできないことがわかりました。

したがって、階層データを複数のコレクションに分割する必要があるように思えますが、それを行う最善の方法が何であるかはわかりません。このデータをどのように分割することをお勧めしますか?

4

1 に答える 1

0
  • 投影これをロックしています。射影演算子を使用して返すフィールドを指定するオプションの演算子で、ブール値1 - 表示& 0 - 非表示

    db.customers.findOne({"users.mail": "mail@address.org"}, {users: 1})

  • これを認証に使用するのは安全ではありません。findOne({"users.mail": "mail"})特別な Node.js モジュールPassportJSがあります。

于 2013-08-29T10:22:59.833 に答える