Я работаю над приложением Meteor, и одна из функций, которые я создаю, представляет собой форму, которая вставляет новый документ в массив (вставляет адрес доставки в профиль пользователя, где пользователь может иметь несколько адресов). Ошибка я получаю это:Что такое модификаторы и операторы MongoDB?
Exception while invoking method 'addAddress' Error: When the modifier option is true, validation object must have at least one operator
Я безуспешно пытался выяснить ответ на Stackoverflow, Github и т.д., но не смог найти решение. Теперь я хочу понять, что именно означает ошибка - так что мой вопрос в том, какие именно варианты модификатора и операторы в MongoDB? Из того, что я понимаю, модификаторы предоставляют ограничения на то, какой тип данных возвращается из запроса, а операторы используются для изменения данных. Правильны ли эти определения?
Кто-нибудь знает, какая ошибка, которую я получаю, может означать? Вот мой пример кода:
Мое событие щелчка, чтобы захватить данные по форме и вызвать метод, чтобы добавить адрес:
Template.editAddress.events({
'click .addAddress': function(e, tmpl) {
e.preventDefault();
var currentUserId = Meteor.userId();
console.log(currentUserId);
var addressDetails = {
address: {
streetAddress: $('#streetAddress').val()
}
};
console.log(addressDetails);
Meteor.call('addAddress', addressDetails, currentUserId, function(error) {
if (error) {
alert(error.reason);
} else {
console.log('success!');
Router.go('Admin');
}
});
} });
Мой метод, чтобы вставить адрес:
Meteor.methods({
'addAddress': function(addressDetails, currUserId) {
var currentUserId = currUserId;
console.log('user to add address to is ' + currUserId);
Meteor.users.update(currentUserId, {$addToSet:
{
'address.streetAddress': addressDetails.streetAddress
}
});
}
});
Обратите внимание, что при вводе этого запроса в консоли, она работает:
db.users.update({_id: 'Qdf89k3fd93jfdk'}, {$addToSet: {'address.streetAddress': '12345 fake st'}});
Спасибо заранее!
Вы можете разместить свои выборочные данные и что запрос вы пробовали? – Yogesh
уверен, только что добавил –