javascript - 如何在 Mongoose 中检索子文档

标签 javascript node.js mongodb mongoose

我的数据库中有 mongo 集合:

[
    {
        "_id": "59955bb0cd522a00bcaab08c",
        "lang": "en",
        "__v": 0,
        "message_subsets": [
            {
                "identifier": "errors",
                "_id": "59955bb0cd522a00bcaab08d",
                "messages": [
                    {
                        "identifier": "invalid",
                        "message_text": "$FIELD$ is invalid",
                        "_id": "59955bb0cd522a00bcaab091"
                    },
                    {
                        "identifier": "empty",
                        "message_text": "$FIELD$ is required",
                        "_id": "59955bb0cd522a00bcaab090"
                    }
                ]
            }
        ]
    },
    {
        "_id": "59955bb0cd522a00bcaab08c",
        "lang": "ru",
    ...
]

它是由 Mongoose 模式构建的:

const MessageSchema = new mongoose.Schema({
    identifier: {
        type: String,
        unique: true,
        required: true,
        trim: true
    },
    message_text: {
        type: String,
        required: true,
        trim: true
    }
});

const MessageSubsetSchema = new mongoose.Schema({
    identifier: {
        type: String,
        unique: true,
        required: true,
        trim: true
    },
    messages: [MessageSchema]
});

const LangMessageSetSchema = new mongoose.Schema({
    lang: {
        type: String,
        unique: true,
        required: true,
        trim: true
    },
    message_subsets: [MessageSubsetSchema]
});

我想从 message_subsets 数组项中检索所有具有 "identifier": "errors"messages(如果其父项具有 "lang": "en")。 因为我对 mongoose 和 mongo 有点陌生,所以我坚持了下来!您能帮助我以正确的方式进行数据查询吗?谢谢。

最佳答案

这应该有效:

Collection.find({'messages.message_subsets.identifier':'errors', 'lang': 'en'}, {'messages': 1})

关于javascript - 如何在 Mongoose 中检索子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45734429/

相关文章:

javascript - $rootScope.$on 多次调用

javascript - 在 Rails 服务器端运行 javascript

javascript - Node.js 填充 JSON 请求的最佳实践

javascript - browserify 的 reactjs 捆绑脚本在客户端不工作(未捕获的 ReferenceError : Component is not defined)

node.js - 具有数组对象值总和的 MongoDB 聚合

mysql - 如何在迭代中使用字段值本身更新 MongoDb 中的文档?

mongodb - 使用带有条件的 $graphLookup

javascript - Ionic 和 Angular 2 - 拒绝应用来自 'http://localhost:8100/build/main.css' 的样式,因为它的 MIME 类型 ('text/html' 不受支持

javascript - JSONarray 没有数组名称?

javascript - 条形图上的 jqplot 工具提示