MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проблем с дублирането на Mongo DB при използване на сортиране с ограничение и пропускане при агрегиране

Според вашите данни за колекцията вие сортирате по ключ с общи стойности.

При първото агрегиране на агрегиране, което използвате (skip,limit) => (0,4) в този случай mongo сортира документите по ред от всички документи и резултатът е сортиран.

Във второто агрегиране вие ​​отново използвате (skip,limit) => (4,4) в този случай mongo сортира документите от целия документ, където документите могат да бъдат дубликати, докато имат една и съща стойност в ключа.

Така че след сортиране по вашите данни, трябва да сортирате данните си с произволен уникален ключ (или „_id“ или „име“), както желаете. Забележка:ключът трябва да е уникален

нещо като по-долу

db.testing.aggregate([
    {
        $sort : { 
          "percentage": -1,
          "_id" : 1
        },
    },
    {
        $skip : 0
    },
    {
        $limit:4
    }
]);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Върнете всички полета MongoDB Aggregate

  2. MongoDB Opensource срещу MongoDB Enterprise

  3. Как да създавате индекси в MongoDB чрез .NET

  4. Не може да се инициира набор от реплики в Ubuntu

  5. Множество колекции, многодокументни „транзакции“ в MongoDB