【问题标题】:Relationships by _id in MongoDBMongoDB中_id的关系
【发布时间】:2016-04-23 02:46:34
【问题描述】:

我一直在研究 MongoDb 以将我的项目迁移到 MEAN 技术,我在我的数据库中有两个集合 person 我在其中放置了所有基本信息,例如姓名、年龄等,account 我在其中放置了电子邮件等信息,通过,水平。我需要在这些集合之间创建关系。我所做的是设置account's _id 等于person' _id。对吗?

人物集合

{
    "_id" : ObjectId("569c39684e23c75303a0fe32"),
    "name" : {
            "First" : "Daniel Alessandro",
            "Last" : "Aguilar Chombo"
    },
    "area" : 1
}

帐户收集

{
        "_id" : ObjectId("569c39684e23c75303a0fe32"),
        "email" : "testAccount@live.com",
        "password" : "testPassword4218",
        "level" : 0
}

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    这里可以使用$ref,建立UserAccount之间的关系。

    mongoose为例:

    var personSchema = Schema({
      name    : { First: String, Last: String},
      area    : Number,
      account : [{ type: Schema.Types.ObjectId, ref: 'Account' }]
    });
    
     var accountSchema = Schema({{
            email : String,
            password : String,
            level : Number
    }
    

    【讨论】:

      【解决方案2】:

      嗯,那将是 1:1 的关系,我会问为什么不将数据放在一个集合中。

      但是,您可以简单地将ObjectID 类型的字段(或数组)添加到一个集合并存储另一个集合的id_s。它模拟我们从 RDBMS 中知道的经典外键关系。

      【讨论】:

      • 我知道在 NoSql 数据库中不需要规范化或创建集合之间的关系,但我需要规范化这些表,因为我不想将这些数据(电子邮件和传递)放在同一个文件。
      猜你喜欢
      • 2015-02-01
      • 2015-01-02
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      相关资源
      最近更新 更多