2016-06-28 18 views
0

このMeteorサーバーコードは、新たに作成されたプロパティー_idをサブ文書にコピーしようとしましたが、失敗しました。Mongoドキュメントの_idをネストされたフィールドに保存するにはどうすればいいですか?

どうすればできますか?

編集:
コードがmatb33:collection-hooksを使用しています。

matb33:collection-hooksafterフックで docは、追加クエリが実行されることはありません変異さ
MyCollection.after.insert(function(userId, doc) { 
    if (doc.element === 'myString') { 
    doc.values[0]._id = doc._id; 
    } 
}); 
+0

https://github.com/matb33/meteor-collection-hooksのようなものを使用していますか? –

+0

@AnthonyAstigeはい。投稿が更新されました。 –

+0

文書を挿入するときに '_id'を生成しないのはなぜですか?これにより、これらの追加クエリを実行する必要がなくなります。 – MasterAM

答えて

2

。ドキュメントを明示的にupdateする必要があります。

ただし、この特定のケースでは、文書内に重複_idが本当に必要な場合は、_idを生成し、文書を挿入するときに指定することができます。

MyCollection._makeNewID()メソッドを使用することができます。このAPIは数年間変更されておらず、Mongoパッケージが内部で使用するものです。

const _id = MyCollection._makeNewID(); 
const doc = { 
    _id, 
    values: [ 
    { 
     _id, 
     ... 
    }, { 
     ... 
    } 
    ] 
}; 

MyCollection.insert(doc); 
関連する問題