gpt4 book ai didi

mongodb - 如何在 MongoDB 中按字段值排序

转载 作者:可可西里 更新时间:2023-11-01 09:44:39 27 4
gpt4 key购买 nike

在Mysql中我经常在ORDER BY子句中使用FIELD()函数:

按字段排序(id, '1', '6', '3', ...);

如何在 MongoDB 中获得相同的结果?我尝试了以下方法:

.find(...).sort({id: [1, 6, 3]})

这没有用

最佳答案

我们可以使用$indexOfArray

控制台

db.collectionName.aggregate([{
$match: {
_id: {
$in: [249, 244]
}
}
}, {
$addFields: {
sort: {
$indexOfArray: [
[249, 244], "$_id"
]
}
}
},{
$sort: {
sort: 1
}
}])

PHP代码

$data = $this->mongo->{$collectionName}->aggregate(
[
[
'$match' => ['_id' => ['$in' => $idList]]
],
[
'$addFields' => ['sort' => ['$indexOfArray' => [$idList, '$_id']]]
],
[
'$sort' => ['sort' => 1]
],
[
'$project' => [
'name' => 1
]
]
]
);

关于mongodb - 如何在 MongoDB 中按字段值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22607800/

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