mongodb - mongo数组查询,如何仅返回当前匹配数组?
PHP中文网
PHP中文网 2017-04-27 09:02:24
0
4
625
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中文网

认证高级PHP讲师

全員に返信(4)
PHPzhong

リーリー

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

リーリー

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

リーリー

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

いいねを押す +0
PHPzhong

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

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

いいねを押す +0
洪涛

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

いいねを押す +0
为情所困

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート