首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从集合中获取2-2记录

从集合中获取2-2记录
EN

Stack Overflow用户
提问于 2016-07-21 14:08:48
回答 1查看 44关注 0票数 0

我有多个记录在同一个集合中,具有不同的-2状态。我想要每一种状态的2-2记录。

样本收集

代码语言:javascript
复制
[
  {
    "title": "Record1",
    "status": "pending"
  }, {
    "title": "Record2",
    "status": "ready"
}, {
    "title": "Record3",
    "status": "ready"
}, {
    "title": "Record4",
    "status": "ready"
}, {
    "title": "Record5",
    "status": "pending"
}, {
    "title": "Record6",
    "status": "pending"
}, {
    "title": "Record7",
    "status": "pending"
}, {
    "title": "Record8",
    "status": "pending"
}, {
    "title": "Record9",
    "status": "pending"
}, {
    "title": "Record10",
    "status": "pending"
}, {
    "title": "Record11",
    "status": "ready"
}]

预期结果

代码语言:javascript
复制
[
    {
        "title": "Record1",
        "status": "pending"
    },
    {
        "title": "Record5",
        "status": "pending"
    },
    {
        "title": "Record2",
        "status": "ready"
    }, 
    {
        "title": "Record3",
        "status": "ready"
    }
]
EN

回答 1

Stack Overflow用户

发布于 2016-07-21 14:31:12

希望这能有所帮助!

代码语言:javascript
复制
db.test.insert(
{
record:[{title:"r1",status:"pending"}, 
        {title:"r2",status:"ready"},
        {title:"r3",status:"pending"},
        {title:"r4",status:"pending"},
        {title:"r5",status:"ready"},
        {title:"r6",status:"ready"}
    ]
}
)

db.test.aggregate(
    [
        {$unwind:"$record"},
        {$group:{_id:"$record.status",titles:{$addToSet:"$record.title"}}},
        {$project:{_id:0,status:"$_id",records:{$slice:["$titles",2]}}},
        {$unwind:"$records"}
    ]
)

结果:

代码语言:javascript
复制
{ "status" : "pending", "records" : "r1" }
{ "status" : "pending", "records" : "r3" }
{ "status" : "ready", "records" : "r5" }
{ "status" : "ready", "records" : "r2" }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38506537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档