27

サブドキュメントなしで、_idのみuser_idを返す方法があるかどうか知りたいのですが。totalitems

{
    "_id" : 122,
    "user_id" : 123456,
    "total" : 100,
    "items" : [
            {
                    "item_name" : "my_item_one",
                    "price" : 20
            },
            {
                    "item_name" : "my_item_two",
                    "price" : 50
            },
            {
                    "item_name" : "my_item_three",
                    "price" : 30
            }
    ]
}
4

2 に答える 2

34

findの2番目のパラメーターを使用すると、フィールドを選択できます。したがって、これを使用できます(とにかく、_idフィールドは常に選択されていることに注意してください)。

db.mycollection.find({}, {"user_id": 1, "total": 1});

特定のフィールドを除外することもできるので、これは同等です。

db.mycollection.find({}, {"items": 0});

次のようにして、_idフィールドを除外できます。

db.mycollection.find({}, {"user_id": 1, "_id": 0});
于 2012-06-14T04:11:48.717 に答える
18

私が探していたのはIDのリストを返すことなので、_idのみを返しますが、すべてのドキュメントの配列として返します。私はそのようにそれをしました:

db. mycollection.distinct("_id", {})

最初のパラメータはdistictフィールドで、2番目はクエリです。詳細については、こちらをご覧ください。うまくいけば、これは同様の要件を持つ誰かを助けるでしょう。乾杯!

于 2018-10-16T18:43:36.383 に答える