在Mongodb查询中寻找对某些文档进行优先级排序的正确方法
我到处找,找不到我需要解决的问题的适当来源 给定记录数据,在查询所有文档时,我需要将某些文档的优先级排在其他文档的优先级之上 例如:假设我正在进行此搜索在Mongodb查询中寻找对某些文档进行优先级排序的正确方法,mongodb,Mongodb,我到处找,找不到我需要解决的问题的适当来源 给定记录数据,在查询所有文档时,我需要将某些文档的优先级排在其他文档的优先级之上 例如:假设我正在进行此搜索 db.users.find().limit(10) 我的文档包含id=1,2,3,….50的数据 如何首先对id=12或id=49的查询进行优先级排序 我想要得到的是: array({id=12}, {id=49} ... fill the rest until pager limit) 我试过使用$或类似的方法: { "$
db.users.find().limit(10)
我的文档包含id=1,2,3,….50的数据
如何首先对id=12或id=49的查询进行优先级排序
我想要得到的是:
array({id=12}, {id=49} ... fill the rest until pager limit)
我试过使用$或类似的方法:
{
"$or": [
{'_id': {'$in': [id=12,id=49]}},
{}
]
}
但我不认为这是正确的方法,它不起作用
非常感谢您的任何帮助您可以使用此方法
要添加用于排序的新字段$addFields
,请检查输入id中是否有字段hasId
,然后返回1,否则删除字段\u id
按$sort
降序排序hasId
文档$limit
这将只返回12、49,我仍然希望得到剩余的(填充数组直到寻呼机限制)我知道跳过,这不是我想要的。我基本上希望在不进行任何筛选的情况下获取所有文档(在寻呼机限制范围内),但要确保某些值将位于第一页(例如,将它们排序到第一页)
db.collection.aggregate([
{
$addFields: {
hasId: {
$cond: [
{ $in: ["$_id", [8, 5]] },
1,
"$$REMOVE"
]
}
}
},
{ $sort: { hasId: -1 } },
{ $limit: 5 }
])