2

私のスキーマは次のようになります

name:
value:
p_vars: {
    name1: {},
    name2: {},
}

にあるアイテムの数を数えたいですp_vars

インタプリタだとJavaScript思ってやってみた

db.collection.findOne().p_vars.length

しかし、何も返されません

答えは

上記を考慮すると、答えは2(2つのアイテムname1name2)でなければなりません

4

1 に答える 1

3

ここでの最も簡単な解決策は、p_varsの配列を使用するようにスキーマを変更することです。これは、とにかく必要なように聞こえます。代わりにスキーマが次の場合:

name:
value:
p_vars: [
    name1: {},
    name2: {},
]

次に、db.collection.findOne().p_vars.lengthコマンドは期待どおりに2を返します。

元のスキーマでは、要素を手動で反復してカウントするJS関数を作成するしかないと思います。

于 2012-07-21T00:52:40.037 に答える