2016-11-15 68 views
0

我有一个架构,我在其中存储两个用户之间的关系。每种关系都有用户特定的数据。我很好奇,如果有可能沿此线做一些事情:在Mongoose中的动态模式字段

{ 
    users: Array, 
    users[0]: { 
     typing: Boolean, 
     last_checked: Date 
    }, 
    users[1]: { 
     typing: Boolean, 
     last_checked: Date 
    } 
} 

而不必存储像这样的信息:

{ 
    users: Array, 
    data: Array 
} 

,并在服务器上做逻辑查找指数等像这样:

entry.data[entry.users.indexOf(id)].typing 

基本上只是试图找到存储在2人的关系,每个用户基于用户信息的一个体面的方式。 对我来说最理想的情况是使用用户_id作为关键,但你可以用Mongoose做到这一点吗?

回答

0

我建议你创建一个包含用户数据的数组。在这里,我确实将数组的大小限制为两个关系。

DataSchema = { 
     typing: Boolean, 
     last_checked: Date, 
    } 

    UserSchema = { 
     relationship: { 
      type: [DataSchema], 
      validate: [ 
      () => val.length <= 2, 
      '{PATH} exceeds the limit of 2 relationship', 
      ], 
     } 
    } 

访问数据:

// User 1 data 
entry.relationship[0] 

// User 2 data 
entry.relationship[1] 

// User 1 _id you can use 
entry.relationship[0]._id