【问题标题】:Segregate results from mongodb based on a particular field根据特定字段从 mongodb 中分离结果
【发布时间】:2016-12-24 06:54:04
【问题描述】:

我的列表集合架构是-

list:
    {
    username : "some username",
    listitem : "some item",
    category : "some category",
    status : "some status"
    }

db.list.find() 获取所有结果,但我想根据类别检索数据,其中具有相同类别值的结果一起出现。这是

的示例输出
db.list.find()

{
        "_id" : ObjectId("585669eb4aa058f4e7972db3"),
        "username" : "user1",
        "listitem" : "item 1",
        "status" : "P",
        "category" : "A",
}
{
        "_id" : ObjectId("5856a7c64aa058f4e7972db4"),
        "username" : "user2",
        "listitem" : "item 2",
        "status" : "p",
        "category" : "B",
}
{
        "_id" : ObjectId("5858faedde3ffb11a083e770"),
        "username" : "user1"
        "listitem" : "item 3",
        "status" : "p",
        "category" : "A",
}

但我希望我所有的“A”类别结果和“B”类别结果一起。

也就是说,输出应该是这样的-

{
        "_id" : ObjectId("5856a7c64aa058f4e7972db4"),
        "username" : "user2",
        "listitem" : "item 2",
        "status" : "p",
        "category" : "B",
}
{
        "_id" : ObjectId("585669eb4aa058f4e7972db3"),
        "username" : "user1",
        "listitem" : "item 1",
        "status" : "P",
        "category" : "A",
}
{
        "_id" : ObjectId("5858faedde3ffb11a083e770"),
        "username" : "user1"
        "listitem" : "item 3",
        "status" : "p",
        "category" : "A",
}

请有人告诉我该怎么做。当我在节点 js 服务器中得到结果时,无论是直接通过 mongodb 查询还是我必须执行操作以格式化输出?

【问题讨论】:

  • 你能分享一个示例输出吗?您的意思是同一类别的文档被列在一起,但仍然是单独的文档?
  • 我已添加示例输出。请检查! @rahulroc
  • 成功了。非常感谢! @shA.t

标签: mongodb mongodb-query


【解决方案1】:

这是一个简单的排序用例

db.list.find().sort( { category: 1 } )

所有文档都将按照对应的category 值排序,因此所有具有相同类别值的文档将被列在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多