集合数据为嵌套列表结构,根据嵌套文档中符合条件的子文档中的字段实现排序。如有集合 demo,其数据如下:
| {
"_id" : ObjectId("59fb2e93670c90000ab85efb"), "relateId" : NumberLong(124), "list" : [ { "relateId" : NumberLong(206), "position" : 10 }, { "relateId" : NumberLong(208), "position" : 4 } ], "createAt" : NumberLong(1489258188083), "updateAt" : NumberLong(1505796172787) } |
{
"_id" : ObjectId("59fb2e93670c90000ab86efb"), "relateId" : NumberLong(125), "list" : [ { "relateId" : NumberLong(208), "position" : 5 } ], "createAt" : NumberLong(1489258188083), "updateAt" : NumberLong(1505796172787)} ...... |
希望根据 list.relateId=208 的 list 对象里面的 position 字段排序。
使用集算器, 根据 list 中筛选记录的 postion 排序即可,实现比较容易。
1、编写脚本 demo.dfx:
| A | B | |
|---|---|---|
| 1 | =mongo_open("mongodb://localhost:27017/raqdb") | / 连接 MongoDB 数据库 |

本文介绍如何在MongoDB中对嵌套列表结构的数据进行排序。具体场景是,集合中存在嵌套文档,需求是根据list.relateId为208的子文档的position字段进行排序。通过使用esProc SPL,可以方便地实现这个功能。脚本执行后,能够得到按position排序的结果。
最低0.47元/天 解锁文章
686

被折叠的 条评论
为什么被折叠?



