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

Tambahkan semacam nomor baris ke perintah/pipa agregat mongodb

Tidak yakin tentang kinerja dalam kueri besar, tetapi ini setidaknya merupakan opsi.

Anda dapat menambahkan hasil Anda ke array dengan mengelompokkan/mendorong dan kemudian melepasnya dengan includeArrayIndex seperti ini:

[
  {$match: {author: {$ne: 1}}},
  {$limit: 10000},
  {$group: {
    _id: 1,
    book: {$push: {title: '$title', author: '$author', copies: '$copies'}}
  }},
  {$unwind: {path: '$book', includeArrayIndex: 'rownum'}},
  {$project: {
    author: '$book.author',
    title: '$book.title',
    copies: '$book.copies',
    rownum: 1
  }}
]

Sekarang, jika database Anda berisi sejumlah besar catatan, dan Anda bermaksud untuk membuat paginasi, Anda dapat menggunakan tahap $skip dan kemudian $limit 10 atau 20 atau apa pun yang ingin Anda tampilkan per halaman, dan cukup tambahkan nomor dari $skip tahap ke rownum Anda dan Anda akan mendapatkan posisi sebenarnya tanpa harus mendorong semua hasil Anda untuk menghitungnya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Persimpangan indeks MongoDB

  2. Kueri agregasi rata-rata Mongo tanpa grup

  3. MongoDB - Argumen ke $size harus berupa Array, tetapi bertipe:EOO / hilang

  4. Menutupi PII di MongoDB, Cassandra, dan Elasticsearch dengan DarkShield:…

  5. Operator Kueri $type MongoDB