8

オブジェクトがあり、Web アプリmongoからアクセスしたいと考えています。mongoose私が定義したスキーマには、Object格納されているユーザー ID と 3 レベルの値 (はい、多分、またはいいえ) があります。

例えば

"user_info": {
    "<id_value_1>": "y",
    "<id_value_2>": "n"
}

上記id_value_*の s はユーザーのセッション ID であるため、ランダムな文字の長い文字列です。このための を作成するにはどうすればよいmongoose Schemaですか?

  1. うまくいくでしょうかuser_info: {String, String}

  2. user_infoがオブジェクトの配列になるように再構築できます{ "sessionid": "<value>", "value: "y"}が、これは最適なオプションですか?

4

4 に答える 4

11

スキーマで動的キーを避けて、次の 2 番目のアイデアを使用すると、より良い結果が得られます。

user_info: [{sessionid: String, value: String}]

$位置演算子を使用して、個々のuser_info配列要素をsessionid.

于 2013-01-07T13:56:25.663 に答える
1

上記をテストした後、スキーマを定義することuser_info: { String: String }がこれを行う有効な方法であることがわかりました(質問で指定されたオプション1)。

于 2013-01-07T12:30:35.673 に答える
0

スキーマでオブジェクトと配列を定義できます。それらを組み合わせることもできます。たとえば、これはオブジェクトの配列です。

var user = new Schema({
    foo: [ {
        address: {type: String},
        email: {type: String, unique: true}
    }],
    bar: [ "simple", "array" ]
});
于 2013-01-07T13:12:00.927 に答える