4

永続性を維持する必要がある一連のドキュメントがあります。MongoDB が複数ドキュメント操作を処理する方法により、操作の原子性を確保するために、この一連のドキュメントをコンテナー ドキュメント内に埋め込む必要があります。

データは、キーと値のペアリングに大いに役立ちます。これを行う代わりに何か方法はありますか:

var container = new mongoose.Schema({
   // meta information here
   subdocs: [{key: String, value: String}]
})

代わりにsubdocs、サブドキュメントの検証を適用する連想配列 (つまり、オブジェクト) にすることはできますか? したがって、コンテナ インスタンスは次のようになります。

{
   // meta information
   subdocs: {
       <key1>: <value1>,
       <key2>: <value2>,
       ...
       <keyN>: <valueN>,
   }
}

ありがとう

4

2 に答える 2

2

この動作は、マングース スキーマで { strict : false} を使用することで実現できますが、マングースの検証およびキャスト メカニズムへの影響を確認する必要があります。

var flexibleSchema = new Schema( {},{strict: false})

別の方法はschema.add メソッドを使用することですが、これが正しい解決策だとは思いません。

私が見る最後の解決策は、すべての配列をクライアント側に取得し、underscore.js またはあなたが持っているライブラリを使用することです。ただし、アプリ、ドキュメントのサイズ、通信手順などによって異なります。

于 2013-12-01T17:45:36.910 に答える