1

集計パイプラインで何かを実行し、それを変数に割り当てました。返されたオブジェクトの構造が正確にはわからないので、行ごとに見ることができるある種の「頭」、またはそれに含まれるオブジェクトを確認できる関数が必要です. これの構文は何ですか?

var names = db.inst.aggregate(
    { $group : {
        _id : "$inst.state", 
        names: {$addToSet: "$inst.name"}
    }}
).result

どうすれば名前を調べることができますか?

4

3 に答える 3

1

mongo シェルで作業していると仮定しています。

あなたが今持っているものがJSONオブジェクトである場合、私はそれが次のように見えると仮定しています:

[
    {"_id": "fred", "names": ["fred", "john"]},
    {"_id": "jack", "names": ["jack", "bill"]}
]

したがって、あなたが持っている値を確認するには、コマンドを実行するだけです

names

これにより、コレクション内のすべての結果が表示されます

個々の結果を表示するには、配列のインデックスを使用できます。

names[1]

アイテムのプロパティにアクセスするには、ドット表記を使用します。

names[1].names
于 2013-08-16T15:43:08.557 に答える
1

head に最も近いアナログは次のようになります。

を使用してオブジェクトをシリアル化しますvar s = JSON.stringify(names)

- を使用して文字列から必要な部分を抽出するs.slice(from,to);か、正規表現を実行して必要なものを見つけます。

それ以外にも、配列インデックスによって結果から個々の項目を参照できます。

于 2013-08-16T18:49:31.140 に答える
1

結果を出力するjsスクリプトを作成し、シェルからスクリプトを実行して、出力を選択したファイルにリダイレクトします。

したがって、使用するデータベースが db_name で、結果を出力するスクリプトを に保存している場合、既存のスクリプトにprint-names-result.js追加するだけで、コマンドは次のようになります。printjson(names)

mongo db_name print-names-result.js > names.json

names.json次に、エディターでファイルを調べます。

もちろん、出力を直接headコマンドにパイプラインすることもできます。

mongo db_name print-names-result.js | head
于 2013-08-16T16:00:06.077 に答える