首页 > 解决方案 > MongoDB 子文档列表

问题描述

我有一个关于子文档的问题。假设我有一个这样的用户数据库:

db.users.insertMany([
{
    username: "test",
    projectA: [
        {
            tags: ['1234', '23454']
        }

    ]
},

{
    username: "test2",
    projectA: [
        {
            tags: ['1dfdfsdf', '234dfdfdf54']
        }

    ]
},
]);

在用户文档下方,我有项目的子文档。比方说,其中一个项目被称为“ProjectA”。在这个文档下我存储了项目的数据,在我的例子中是一些标签。

我对整个用户模型没有用处,因为它可能是很多数据。我想要的是用户和projectA下数据库中所有标签的列表。

我使用 NodeJS 和猫鼬来获取数据。我该怎么做?

标签: mongodbmongoose

解决方案


您可以$match用于过滤和$project获取数据的子集:

db.collection.aggregate([
    { $match: { username: "test" } },
    { $project: {"projectA.tags": 1} }
])

蒙戈游乐场


推荐阅读