最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

查找文档及其引用的文档

运维笔记admin14浏览0评论

查找文档及其引用的文档

查找文档及其引用的文档

我在尝试使用mongodb中的聚合管道填充相关字段时遇到麻烦,普通关系也起作用(我的意思是在其他集合中对oid的oid引用),但是当您有一个对象数组,其属性之一引用了a时会发生什么子文档。如果我不清楚,请在此处稍作介绍。

假设我具有以下架构:

Profile {
    _id: {
        type: mongoose.Schema.Types.ObjectId
    },
    Gender: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "Gender"
    },
    PhoneNo: [
        Value: {
            type: String
        },
        PhoneType: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "PhoneType"
        }
    ]
}

PhoneType {
    _id: {
        type: mongoose.Schema.Types.ObjectId
    },
    Name: {
        type: String
    }
}

Gender {
    _id: {
        type: mongoose.Schema.Types.ObjectId
    },
    Name: {
        type: String
    }
}

所以,我想得到类似的结果:

    {
        _id: $oid,
        Gender: {Value:"Masculine"},
        PhoneNo: {
            Value: "000000",
            PhoneType: {
                _id: $oid
                Name: "Cell"
            }
        }
    },
    {
        _id: $oid,
        Gender: {Value:"Feminine"},
        PhoneNo: {
            Value: "999999",
            PhoneType: {
                _id: $oid
                Name: "Work"
            }
        }
    }

Gender中的查找效果很好,但是当我尝试查找PhoneNo时,我丢失了[[value属性。

我得到的是:

失去对字段/属性

的关注,]。> { _id: $oid, Gender: {Value:"Masculine"}, PhoneNo: [{ PhoneType: { _id: $oid Name: "Cell" } }] }, { _id: $oid, Gender: {Value:"Feminine"}, PhoneNo: [{ PhoneType: { _id: $oid Name: "Work" } }] }
这是我使用的代码:

{ from: 'PhoneType', 'let': {"ids":"$PhoneNo.PhoneType"}, "pipeline": [ { "$match": { "$expr": { "$in": ["$_id", "$$ids"] } } }, ], as: "PhoneNo" }

我该怎么做? :S

[我在尝试使用mongodb中的聚合管道填充相关字段时遇到了麻烦,普通关系也起作用(我的意思是其他集合中对oid的oid引用),但是当您...时会发生什么...

回答如下:所以这是您遇到的问题的演练,我们还在lookup let声明中包含Values,因为它将存储在数组中,并且在项目阶段,我们将获取indexOf Values数组,其中$$ ROOT的id和ID匹配

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论