Я сортирую данные в соответствии со статусом пользователя (в настоящее время статус имеет два значения 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
.