次のSQLクエリをMongoDbで複製するにはどうすればよいですか?
update Person set Alias = Name;
Person
テーブルに列がある場所Alias, Name
クエリが複数の行に影響を与えるようにしたい。更新クエリがアップサートをサポートできないかどうかは関係ありません。更新するだけで、挿入する必要はありません。
次のSQLクエリをMongoDbで複製するにはどうすればよいですか?
update Person set Alias = Name;
Person
テーブルに列がある場所Alias, Name
クエリが複数の行に影響を与えるようにしたい。更新クエリがアップサートをサポートできないかどうかは関係ありません。更新するだけで、挿入する必要はありません。
残念ながら、その機能は MongoDB では利用できません。ドキュメントをループして、一度に 1 つずつ更新し、読み取りと更新のペアを実行する必要があります。
これを同時実行セーフにしたい場合は、ある種のロックを実装する必要があります。楽観的か悲観的か。
myDb.myCollection.find({}).forEach(
function (person) {
person.Alias = person.Name
myDb.myCollection.save(person)
}
)