MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Indeks MongoDB untuk $elemMatch

Berdasarkan kueri Anda, saya membayangkan bahwa dokumen Anda terlihat seperti ini:

{
    "_id" : 1,
    "lc" : "eng",
    "group" : "xyz",
    "indices" : [
        {
            "text" : "as",
            "pos" : 2
        }, 
        {
            "text" : "text",
            "pos" : 4
        }
    ]
}

Saya membuat kumpulan pengujian dengan dokumen format ini, membuat indeks, dan menjalankan kueri yang Anda posting dengan opsi .explain().

Indeks sedang digunakan seperti yang diharapkan:

> db.test.ensureIndex({"lc":1, "group":1, "indices.text":1, "indices.pos":1})
> db.test.find({ lc: "eng", group: "xyz", indices: { $elemMatch: { text: "as", pos: { $gt: 1 } } } }).explain()
{
    "cursor" : "BtreeCursor lc_1_group_1_indices.text_1_indices.pos_1",
    "isMultiKey" : true,
    "n" : NumberLong(1),
    "nscannedObjects" : NumberLong(1),
    "nscanned" : NumberLong(1),
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : NumberLong(0),
    "millis" : 0,
    "indexBounds" : {
        "lc" : [
            [
                "eng",
                "eng"
            ]
        ],
        "group" : [
            [
                "xyz",
                "xyz"
            ]
        ],
        "indices.text" : [
            [
                "as",
                "as"
            ]
        ],
        "indices.pos" : [
            [
                {
                    "$minElement" : 1
                },
                {
                    "$maxElement" : 1
                }
            ]
        ]
    },
    "server" : "Marcs-MacBook-Pro.local:27017"
}

Dokumentasi tentang fitur .explain() dapat ditemukan di sini:http://www.mongodb .org/display/DOCS/Jelaskan

.explain() dapat digunakan untuk menampilkan informasi tentang kueri, termasuk indeks mana (jika ada) yang digunakan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoExport Terlalu banyak pilihan posisi

  2. Bagaimana menghubungkan Mongodb Atlas ke Spring

  3. Apakah mungkin untuk mendapatkan pemberitahuan kemajuan pengurangan peta di mongo?

  4. Kueri luwak di mana nilainya bukan nol

  5. Temukan menggunakan _id tidak berfungsi dengan agregasi