#mongodb
#mongodb
Вопрос:
У меня есть требование, когда мне нужно отсортировать коллекцию на основе разных полей. Ниже приведена моя запись в базе данных
db.requests.find()
{ "_id" : ObjectId("5caf805f50ca58361589924b"),"type" : "adhoc", "immediate" : false, "place": "london"}
{ "_id" : ObjectId("5c947e37015bfe78a80e5349"),"type" : "adhoc", "immediate" : true, "place": "tokoy" }
{ "_id" : ObjectId("5c9481fa015bfe78a80e534d"),"type" : "periodic", "immediate" : false , "place": "bangalore"}
{ "_id" : ObjectId("5c94ae95015bfe78a80e5363"),"type" : "adhoc", "immediate" : true, "place": "lanka"}
{ "_id" : ObjectId("5c875a96015bfe7b5e772ea3"),"type" : "adhoc", "immediate" : false, "place": "jakarta"}
{ "_id" : ObjectId("5c9481fa015bfe78a80e534d"),"type" : "periodic", "immediate" : false , "place": "europe"}
учитывая
Если «тип» равен «adhoc», то «немедленный» может быть либо «true», либо «false».
Если «тип» является «периодическим», то «немедленный» всегда будет «ложным»
Я просто хочу получить результат в следующем порядке:
-
все записи с «immediate»: «true»
-
все записи с «type»: «adhoc» и «immediate»: «false»
-
все записи с «типом»: «периодический»
Результат должен быть следующим:
{ "_id" : ObjectId("5c947e37015bfe78a80e5349"),"type" : "adhoc", "immediate" : true, "place": "tokoy" }
{ "_id" : ObjectId("5c94ae95015bfe78a80e5363"),"type" : "adhoc", "immediate" : true, "place": "lanka"}
{ "_id" : ObjectId("5caf805f50ca58361589924b"),"type" : "adhoc", "immediate" : false, "place": "london"}
{ "_id" : ObjectId("5c875a96015bfe7b5e772ea3"),"type" : "adhoc", "immediate" : false, "place": "jakarta"}
{ "_id" : ObjectId("5c9481fa015bfe78a80e534d"),"type" : "periodic", "immediate" : false , "place": "bangalore"}
{ "_id" : ObjectId("5c9481fa015bfe78a80e534d"),"type" : "periodic", "immediate" : false , "place": "europe"}