国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

mongodb - mongo數(shù)組查詢,如何僅返回當前匹配數(shù)組?
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-27 09:02:24
0
4
720
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中文網(wǎng)
PHP中文網(wǎng)

認證高級PHP講師

membalas semua(4)
PHPzhong
> db.customer.find().pretty()
{
    "_id" : ObjectId("559bb1d1d39f0dcac2658f8e"),
    "cust_id" : "abc123",
    "ord_date" : ISODate("2012-10-03T16:00:00Z"),
    "status" : "A",
    "price" : 25,
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 5,
            "price" : 2.5
        },
        {
            "sku" : "nnn",
            "qty" : 5,
            "price" : 2.5
        }
    ]
}
{
    "_id" : ObjectId("559bb1ead39f0dcac2658f8f"),
    "cust_id" : "abc123",
    "ord_date" : ISODate("2012-10-03T16:00:00Z"),
    "status" : "B",
    "price" : 30,
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 6,
            "price" : 3.5
        },
        {
            "sku" : "nnn",
            "qty" : 6,
            "price" : 3.5
        }
    ]
}
{
    "_id" : ObjectId("559bb200d39f0dcac2658f90"),
    "cust_id" : "abc123",
    "ord_date" : ISODate("2012-10-03T16:00:00Z"),
    "status" : "C",
    "price" : 35,
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 7,
            "price" : 4.5
        },
        {
            "sku" : "nnn",
            "qty" : 7,
            "price" : 4.5
        }
    ]
}
> db.customer.find({"items.qty":6},{"items.$":1}).pretty()  //只返回和查詢條件匹配的那一個元素  
{
    "_id" : ObjectId("559bb1ead39f0dcac2658f8f"),
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 6,
            "price" : 3.5
        }
    ]
}

Pertanyaan yang sepadan dengan dokumen terbenam, anda juga boleh bertanya secara langsung, seperti:

> db.customer.find({"items.qty":6}).pretty()
{
    "_id" : ObjectId("559bb1ead39f0dcac2658f8f"),
    "cust_id" : "abc123",
    "ord_date" : ISODate("2012-10-03T16:00:00Z"),
    "status" : "B",
    "price" : 30,
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 6,
            "price" : 3.5
        },
        {
            "sku" : "nnn",
            "qty" : 6,
            "price" : 3.5
        }
    ]
}

Sepadan dengan pelaksanaan pertanyaan anda di atas:

> db.customer.find({"_id":ObjectId("559bb1ead39f0dcac2658f8f"),items: {'$elemMatch': {'sku': "mmm"}}},{"items.$":1}).pretty()
{
    "_id" : ObjectId("559bb1ead39f0dcac2658f8f"),
    "items" : [
        {
            "sku" : "mmm",
            "qty" : 6,
            "price" : 3.5
        }
    ]
}

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

PHPzhong

Pertama sekali, jika anda menggunakan mongodb, anda mesti faham bahawa mongodb ialah nosql
Kemudian, koleksi mongo menyimpan dokumen
Akhir sekali, anda mesti tahu bahawa nilai yang dikembalikan oleh find mestilah koleksi dokumen, yang merupakan tatasusunan

Jadi apa yang anda katakan pada dasarnya mustahil untuk dicapai

洪濤

Hanya isikan syarat pertanyaan yang anda perlukan untuk mencari. Untuk butiran lanjut, sila semak laman web rasmi mongodb

為情所困

Gunakan operator $ untuk mengembalikan satu atau lebih, tidak mungkin

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan