2016-09-08 2 views
0

Я хочу назначить первичный ключ MongoDB _id переменной, но не могу этого сделать. Когда я смотрю на запись в коллекции, postID отображается как undefined - код, указанный ниже. Как я могу это исправить? Я хочу, чтобы postID соответствовал _id. Заранее спасибо!Meteor - MongoDB _id

Template.postNewJob.events({ 
    'submit form': function(event) { 
    event.preventDefault(); 
    var position = $('[name=position]').val(); 
    var jobDescription = $('[name=jobDescription]').val(); 
    var createdAt = new Date(); 
    var createdBy = Meteor.userId(); 
    var postID = this._id; 
    postedJobs.insert({ 
     position: position, 
     jobDescription: jobDescription, 
     createdAt: createdAt, 
     createdBy: createdBy, 
     postID: postID 
    }); 
    Router.go('dashboard'); 
    } 
}); 
+0

Похоже, что 'this._id' не определено. Предположительно, потому что это новая форма сообщения, а не одна, связанная с существующим документом? Также вы не назначаете '_id' в свой оператор' .insert() ', чтобы получить случайный' _id'. Вместо этого вы пытаетесь назначить 'postId', который не является первичным ключом. –

ответ

0

Если postId всегда будет вашим идентификатором документа, тогда может быть и другой способ сделать это. Вы можете использовать крючки для коллекции. См здесь https://github.com/matb33/meteor-collection-hooks

и использовать функцию, как показано ниже в вашей стороне сервера файл

postedJobs.after.insert(function (userId, doc) { 
    doc.postId=this._id 
}); 
Смежные вопросы