gpt4 book ai didi

mongodb - Mongoose 排序、升序且 $exists

转载 作者:行者123 更新时间:2023-12-02 09:22:13 29 4
gpt4 key购买 nike

我想知道 mongoose 中是否有一种方法可以对某个字段上的集合的查询进行升序排序,其中该字段也会在 $exist 上排序。我的意思是以下查询按照我想要的方式排序,但将没有 track.nextRun 的文档放在数组顶部db.Task.find().sort({ 'track.nextRun': 1 })我希望数组底部没有 track.nextRun 的文档。

最佳答案

您可以在此处使用聚合。因此,您有一个名为 task 的集合。

任务表数据

| id              | track                    |
| --------------- | ------------------------ |
| someid_1 | { "nextRun" : 10 } |
| someid_2 | { } |
| someid_3 | { "nextRun" : 3 } |

现在,根据您的要求,输出应该是 -

| id           | track              |
| ------------ | ------------------ |
| someid_3 | { "nextRun" : 3 } |
| someid_1 | { "nextRun" : 10 } |
| someid_2 | { } |

Mongodb 查询

db.getCollection('Task').aggregate([
{
$project: {
_id: 1,
track: 1,
nextRunExists: {
$cond: [
{
$ifNull: ["$track.nextRun", false]},
1,
0
]
}
}
},
{
$sort: {
nextRunExists: -1,
track: 1
}
}])

关于mongodb - Mongoose 排序、升序且 $exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785294/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com