2016-11-15 5 views
0

私は2人のユーザー間の関係を保存しているスキーマを持っています。これらの関係のそれぞれには、ユーザー固有のデータがあります。代わりに、そのように保存された情報を有するのモンゴースの動的スキーマフィールド

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

:それはTHISの線に沿って何かを行うことは可能だ場合、私はするとして興味

{ 
    users: Array, 
    data: Array 
} 

と見つけるために、サーバー上のロジックをしていますインデックスは、などのようなので:

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

は、基本的にはわずか2人の関係で、各ユーザーのユーザーベースの情報を格納するためのまともな方法を見つけるためにしようとしています。 私にとって最も理想的なのは、_idというユーザーをキーとして使用することですが、Mongooseでそれを行うことはできますか?

答えて

0

ユーザーのデータが含まれる配列を作成することを提案します。ここでは、配列のサイズを2つの関係に制限しました。

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 
関連する問題