【问题标题】:MongoDB subdocument query to limit elementsMongoDB子文档查询以限制元素
【发布时间】:2013-04-06 07:06:12
【问题描述】:

这是我的文档的样子。

{
    ID: "XYZ",
    messages: [
        {
            ID: "AAA",
            text: "this is a message"
        },
        {
            ID: "BBB",
            text: "this is a message"
        },
        {
            ID: "CCC",
            text: "this is a message"
        },
        {
            ID: "DDD",
            text: "this is a message"
        },
        {
            ID: "EEE",
            text: "this is a message"
        },
        {
            ID: "FFF",
            text: "this is a message"
        },
        {
            ID: "GGG",
            text: "this is a message"
        }
    ]
}

我想汇总并获取例如从CCCFFF 的消息

{
    ID: "XYZ",
    messages: [
        {
            ID: "CCC",
            text: "this is a message"
        },
        {
            ID: "DDD",
            text: "this is a message"
        },
        {
            ID: "EEE",
            text: "this is a message"
        },
        {
            ID: "FFF",
            text: "this is a message"
        }

    ]
}

那么这怎么可能呢?

【问题讨论】:

  • 尝试在您的管道中使用$unwind$match,然后使用$group
  • 我已经做了,这还不够解决这个问题
  • 你能展示一下你的尝试吗?

标签: mongodb mongoose aggregation-framework


【解决方案1】:

这可以通过使用 $slice 运算符来实现。 Check out the mongodb documentation on $slice。 运行查询以获取文档并在查询中使用切片运算符:

query.slice('messages', [numOfElementsToSkip, numOfElementsToReturn]);

或更具体地满足您的要求:

query.slice('messages', [2, 4]); // Return 4 elements after skipping 2

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多