0
アップドキュメントを使用してすべての子ドキュメントIDの配列で親ドキュメントを更新しようとしています。問題は、upsertによって挿入が発生した場合にのみIDが返されることです。更新されたドキュメントのObjectIDを取得します。
私は新しい子供が挿入されているときに動作する次のコードを持っていますが、一度更新されると、結果upsertedIdがnull
であるために約束がロックアップされます。
let promises = [];
parent.children.forEach(child => {
//Child contains everything except the _id
promises.push(database.collection('Children').updateOne(
child,
child,
{
upsert: true
}
));
});
Promise.all(promises).then(result => {
delete parent.children;
parent.childIds = result.map(upsert => new ObjectId(upsert.upsertedId._id)); //ONLY THERE ON INSERT?
database.collection('Parents').updateOne({
parentId: obj.parentId
}, obj, {
upsert: true
}).then(() => {
//some success functionality
}, error => {
//some error functionality
});
}, error => {
//some error functionality
});
項目:http://stackoverflow.com/questions/14481521/get-the-id-of-inserted-document-in-mongo-databaseここ
は私の問題を修正したコードです-in-nodejs – Wake
おかげで@Wakeは不幸にも、私の問題を解決しませんでした。しかし、私は今それを考え出した。答えを1秒後に投稿します。 –