Да, лучший способ - преобразовать нотацию объекта в плоское представление строки значения ключа, как указано в этом комментарии: https://stackoverflow.com/a/39357531/2529199
Я хотел выделить альтернативный метод, используя эту библиотеку NPM: https://www.npmjs.com/package/dot-object , который позволяет вам манипулировать различными объектами с использованием точечной нотации.
Я использовал этот шаблон для программного создания свойства вложенного объекта при принятии значения ключа в качестве функциональной переменной следующим образом:
const dot = require('dot-object');
function(docid, varname, varvalue){
let doc = dot.dot({
[varname]: varvalue
});
Mongo.update({_id:docid},{$set:doc});
}
Этот шаблон позволяет мне использовать вложенные как одноуровневые свойства взаимозаменяемо и вставлять их в Mongo.
Если вам нужно поиграть с объектами JS за пределами Mongo, особенно на стороне клиента, но иметь согласованность при работе с Mongo, эта библиотека дает вам больше возможностей, чем ранее упомянутый модуль mongo-dot-notation
NPM.
PS Мне изначально хотелось просто упомянуть об этом в качестве комментария, но, судя по всему, моя реплика S / O недостаточно высока, чтобы p ost комментарий. Так что, не пытаясь вникать в комментарий SzybkiSasza, просто хотелось выделить альтернативный модуль.