我有这样的集合。 只有少数用户有sortOrder
场仅对现有字段排序
[{
"_id": "59ccf78bde3d14019169c105",
"name": "Best FX broker ",
},
{
"_id": "59ccf78bde3d14019169c102",
"name": "Best automated Performance tool ",
"sortOrder": 1,
},
{
"_id": "59ccf78bde3d14019169c104",
"name": "Best Regtech/ reporting solution ",
},
{
"_id": "59ccf78bde3d14019169c106",
"name": "NEW: BEST CRYPTO SERVICE PROVIDER",
"sortOrder": 2,
}]
当我排序sort({"sortOrder": 1})
我得到这个
[{
"_id": "59ccf78bde3d14019169c105",
"name": "Best FX broker ",
},
{
"_id": "59ccf78bde3d14019169c104",
"name": "Best Regtech/ reporting solution ",
},
{
"_id": "59ccf78bde3d14019169c102",
"name": "Best automated Performance tool ",
"sortOrder": 1,
},
{
"_id": "59ccf78bde3d14019169c106",
"name": "NEW: BEST CRYPTO SERVICE PROVIDER",
"sortOrder": 2,
}]
但我需要这样的排序集合(值与前场sortOrder
)
[ {
"_id": "59ccf78bde3d14019169c102",
"name": "Best automated Performance tool ",
"sortOrder": 1,
},
{
"_id": "59ccf78bde3d14019169c106",
"name": "NEW: BEST CRYPTO SERVICE PROVIDER",
"sortOrder": 2,
},
{
"_id": "59ccf78bde3d14019169c105",
"name": "Best FX broker ",
},
{
"_id": "59ccf78bde3d14019169c104",
"name": "Best Regtech/ reporting solution ",
}]
我该写些什么查询才能得到它?
它看起来并不像你确切使用情况下是支持的,但也有一些解决方法/其他方法可能会让你得到你想要的。请参阅https://stackoverflow.com/questions/36028267/mongodb-sort-by-only-exists-entry-key-with-value-first-and-key-with-null-or-not和https:// stackoverflow .COM /问题/ 32680809/MongoDB的排序逐场存在的,和当时的字母 –