0
私は、サブ文書を含む配列を持っています。私はこのサブ文書内のフィールドをサブ文書の外に持っていく必要があります。ドキュメントはこのようなものです。配列内のフィールドを移動する
field1: "abc"
field2: "dsf"
field3: {
allowed-type: [
field4: "32"
}
フィールドallowed-typeの外側にあるフィールド4をフィールド3の下に置く必要があります。私は、次の
db.collection.find({}).forEach(function (doc) {
doc.field3.field4 = 'doc.field3.allowed-type.field4';
db.collection.save(doc); });
問題は、私は二重引用符を使用せずに、それを参照することはできませんので、配列許さ型にハイフンが含まれていることです試してみました。しかし、二重引用符を使用すると、field4はdoc.field3.allowed-type.field4から値を取るのではなく、文字列として 'doc.field3.allowed-type.field4'に割り当てられます。
「= doc.field3 ['allowed-type'] .field4'? –