0

次の MongoDB コレクションを用意します。

{
    "_id": "u3Yv2bm4cpsssLSHv",
    "allowed": 1,
    "country_name": "Canada",
    "states": [
        {
            "state_name": "Alberta"
        },
        {
            "state_name": "British Columbia"
        },
        {
            "state_name": "Manitoba"
        },
        {
            "state_name": "New Brunswick"
        },
        {
            "state_name": "Newfoundland and Labrador"
        },
        {
            "state_name": "Nova Scotia"
        },
        {
            "state_name": "Ontario"
        },
        {
            "state_name": "Prince Edward Island"
        },
        {
            "state_name": "Quebec"
        },
        {
            "state_name": "Saskatchewan"
        },
        {
            "state_name": "Northwest Territories"
        },
        {
            "state_name": "Nunavut"
        },
        {
            "state_name": "Yukon"
        }
    ]
}

このコレクションの「状態」の値を返すにはどうすればよいですか?ドロップダウンに入力できますか? 私は次のように何かをしようとしています (「状態」サブドキュメントには何も返されません):

venue_province: {
    type: String,
    label: "Province/State",
    optional: true,
    max: 200,
    autoform: {
        type: 'chained',
        // Gets a list of province/state names from the locations collection
        options: function() {
            return _.map(bt_col_locations.find().fetch(), function(item) {
                return {value: item.states.state_name, label: item.states.state_name, parent: item.country_name}
            })
        }
    }

Aldeed:Autoforms と jQuery Chained を使用していることに注意してください。基本的に、ユーザーが国を選択するための親ドロップダウンがあり、子ドロップダウンは適切な州/州にカスケードします。

4

1 に答える 1

0

あなたが探しているのは、おそらく Mongo Aggregation フレームワークのようです。(http://docs.mongodb.org/manual/core/aggregation-introduction/)ここでは特定の使用法をテストしていませんが、 $unwind を使用して状態配列をより実行可能なものにすることができるはずです状態にしてから、それをクエリします。そこから、並べ替えなどの他の便利な操作を実行して、リストの見栄えを良くすることもできます。

于 2015-05-06T19:24:57.213 に答える