Почему сортировка mongodb не работает для похожих данных? - PullRequest
0 голосов
/ 18 февраля 2019

Я сортирую данные в соответствии со статусом пользователя (в настоящее время статус имеет два значения 0 и 1).

Мой запрос mongodb: -

    db.users.aggregate(
    [ { '$facet': 
        { total:[ 
                    { '$match': 
                        {   '$or': [ 
                                    { name: { '$regex': /(?:)/, '$options': 'i' } },
                                    { phonenumber: { '$regex': /(?:)/, '$options': 'i' } } 
                                ] 
                        } 

                    },
                    { '$group': { _id: null, Count: { '$sum': 1 } } } 
                ], 
            users: [ 
                { '$match': 
                    { '$or':[ 
                                { name: { '$regex': /(?:)/, '$options': 'i' } }, 
                                { phonenumber: { '$regex': /(?:)/, '$options': 'i' } } 
                            ],
                    } 

                }, 
            { '$project': 
                    {   name: 1, phonenumber: 1, password: 1, created_by: 1, created: 1, 
                        planType: 1, planStart: 1, planEnd: 1, status: 1 } }, 
            { '$sort': { created: 1 } }, { '$skip': 0 }, { '$limit': 3 } ] } 
        },
        { '$unwind': '$total' }, 
        { '$project': { total: '$total.Count', users: '$users' } } 
    ]
)

Все отлично работает, когда я сортируюданные, используя созданный, имя, но когда я отсортировал данные, используя статус, это не сработало.

Затем я устанавливаю page =2 то есть skip= 3, он должен skip первые 3 идентификатора, но он также дает мне вышеуказанные данные идентификаторов.

Также, когда я изменяю каждое значение состоянияк другим значениям, тогда это работает нормально, но всякий раз, когда я изменяю каждое значение на 0 или 1 или active или 1 as a string, то это дает мне записи, которые я уже получаю на page 1.

...