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

kerangka kerja agregasi mongodb - Ambil bidang dokumen pertama dari array bersarang

Cara termudah untuk mencapai hasil Anda adalah menggunakan kueri pencarian normal dan $slice operator:

db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )

Kerangka kerja agregasi (seperti pada MongoDB 2.4.1) tidak mendukung $slice atau indeks array (permintaan fitur suara/tonton:SERVER-6074 dan SERVER-4589 ).

Anda dapat melakukan ini dalam kerangka kerja agregasi menggunakan $unwind , $group dan $first operator, misalnya:

db.collection.aggregate([
    { $match: {
         _id : "User1"
    }},
    { $unwind: "$likes.sublikes" },
    { $group: {
        _id: "$_id",
        like: { $first: "$likes.sublikes" }
    }},
    { $project: {
        _id: 0,
        "UserID": "$_id",
        "WebsiteName": "$like.WebsiteName"
    }}
])

$slice biasa harus menjadi opsi yang paling berkinerja.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tidak dapat menginstal mongodb di ubuntu 16.10

  2. Bagaimana MongoDB menghindari kekacauan injeksi SQL?

  3. Mekanisme keamanan apa yang dimiliki Meteor?

  4. Apakah urutan Kunci penting dalam dokumen MongoDB BSON?

  5. menentukan $push lokasi dalam koleksi menggunakan Pymongo