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

mongodb - mongo数组查询,如何仅返回当前匹配数组?

db.test.find();
{
    _id: ObjectId('55e99a2190df7a911d6ed1f1'),
    list: [
        {
            "aa": 10,
            "data": "test"
        },
        {
            "aa": 1,
            "data": "test"
        }
    ]
}

db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}})
预期结果:
{_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: {
        "aa": 1,
        "data": "test"
}
PHP中文网PHP中文网2733日前591

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

  • PHPz

    PHPz2017-04-27 09:04:24

    リーリー

    埋め込みドキュメントに一致するクエリを実行します。次のように直接クエリを実行することもできます:

    リーリー

    上記のクエリ実装に対応します:

    リーリー

    db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}},{"list.$":1}).pretty()

    返事
    0
  • PHPz

    PHPz2017-04-27 09:04:24

    まず第一に、mongodb を使用する場合は、mongodb が nosql であることを理解する必要があります
    次に、mongo コレクションにはドキュメントが保存されます
    最後に、find によって返される値はドキュメントのコレクション、つまり配列である必要があることを知っておく必要があります

    つまり、あなたが言ったことは基本的には達成不可能です

    返事
    0
  • PHP中文网

    PHP中文网2017-04-27 09:04:24

    検索に必要なクエリ条件を入力するだけです。詳しくはmongodb公式サイトをご確認ください

    返事
    0
  • 为情所困

    为情所困2017-04-27 09:04:24

    $ 演算子を使用して 1 つ以上を返すことはできません

    返事
    0
  • キャンセル返事