検索

ホームページ  >  に質問  >  本文

Mongodb经过条件查询后获取的是整个文档?

例如有组数据:

name: 'food',
data: {
    fruit: [
        {
            name: 'apple',
            stock: 10
        },
        {
            name: 'pear',
            stock: 66
        }
        ...
    ]
            
}

db.col.find({'data.fruit.stock': 66}, {data.fruit.stock: 1})

查询到的是整个data.fruite;

Q1: 有什么方法只获取过滤器查询的那条数据吗?如果这个文档对象量比较大咋办?
Q2: 这是Mongodb的一种特性?命中过滤器的条件后,返回的是整个文档对象?
Q3: 有这方面的API文档可参阅么?

仅有的幸福仅有的幸福2754日前669

全員に返信(2)返信します

  • 怪我咯

    怪我咯2017-05-02 09:26:53

    質問者が尋ねた質問は、実際にはデータモデルとビジネスクエリの間のトレードオフに関連しています。

    1. MongoDB は基本的に毎回ドキュメントの単位を返します。ドキュメントに配列 (Array) が含まれている場合は、すべての配列を返す必要があります。

    2. 被験者の希望通り、クエリ条件に従い、条件を満たす配列のデータだけを返したい場合は、

    を検討できます。 リーリー

    /q/10...

    ご参考までに。

    MongoDB を愛してください!

    --------------------------ゴージャスなセパレーター--------------------- -- --------

    MongoDB 中国語コミュニティには多くのオフライン アクティビティがあります。以下をクリックしてください:

    2017 華山剣ディスカッション|MongoDB 中国語コミュニティ

    3月には杭州駅が登場します! ! ! 興味のあるお友達は急いで登録してください! ! !

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:26:53

    リーリー

    は実際に data.fruit データのストックを返しますが、条件のストックも返すことができますが、フルーツ配列内のストックのインデックス番号を知る必要があります。

    つまり

    リーリー

    リファレンス (mongodb バージョン 3.4):
    https://docs.mongodb.com/manu...
    https://docs.mongodb.com/manu...#🎜🎜 #

    返事
    0
  • キャンセル返事