我的MongoDB中有许多文档,我有一个名为images的字段,这是一个数组,用户可以在该数组中添加多达3个图像URL.

它看起来是这样的:

{
 images: ['url1', 'url2', 'url3']
 ...restOfDocument
}

我只想按数组中的第一个元素对文档进行排序,如果它存在,我只想对数组中至少有一个URL的所有文档asc或desc进行排序.

我试过:

{
  images: -1/1 OR  "images.0": -1/1
}

以上方法都不起作用,我不想使用Aggregate,我只想知道是否有方法可以使用MongoDB中的游标排序来实现.

任何帮助都将不胜感激.

推荐答案

使用3个示例文档:

[
  {images: ["url1", "url2", "url3"]},
  {images: ["url7", "url2"]},
  {images: []}
]

通过简单的排序:

db.collection.find({}).sort({"images.0":-1})

退货:

[
  {images: ["url7", "url2"]},
  {images: ["url1", "url2", "url3"]},
  {images: []}
]

不出所料

Mongodb相关问答推荐

基于另一子文档更改子文档的引用

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

如何在Mongo中查找数组中的特定对象

MongoDB聚合$group阶段$top与$first在大型数据集上的效率

MongoDB:嵌套数组计数+原始文档

在运算符 $map 中嵌入运算符 $exists

在mongodb中,如何使用聚合来获取字段之间的对应关系

如何使用 Golang 库获取 MongoDB 版本?

如何在 mongodb 中设置整数的默认值?

MongoDB 的 BinData(0, "e8MEnzZoFyMmD7WSHdNrFJyEk8M=") 中的0是什么意思?

使用 MongoDB C# 驱动程序在嵌套数组上使用过滤器生成器进行查询

pymongo 排序和 find_one 问题

你如何让 mongo 在远程服务器上运行?

如何使用 -number 后缀对字符串进行 MongoDB 查询排序?

如何使用 MongoDB 以编程方式预拆分基于 GUID 的分片键

使用 Spring Security + Spring 数据 + MongoDB 进行身份验证

无法连接到远程服务器上的 mongo

Mongodb $lookup 使用 _id 无效果

如何在mongoDB中检索其值以特定字符结尾的文档

Mongoose 为所有嵌套对象添加 _id