2016-11-15 69 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