मैं एक नोड + एक्सप्रेस परियोजना चल रहा है, मैं निम्नलिखित स्कीमा और मॉडल के साथ एक बुनियादी ब्लॉगिंग प्रणाली के निर्माण कर रहा हूँ हैनोड + एक्सप्रेस नेवला उप संग्रह दस्तावेज़ सम्मिलित
var Post = mongoose.Schema({
title: String,
body: String,
author: String,
dateCreated: {type: Date, default: Date.now },
comments: [{author: String, body: String, date: Date}]
});
var Post = db.model('Post', Post);
मैं निम्नलिखित कोड के माध्यम से एक पोस्ट अनुरोध स्वीकार करते हैं और शीर्षक, शरीर और लेखक अद्यतन से यह
app.post('/addpost', function(req,res){
console.log(req.body.post);
var post = new Post(req.body.post);
post.save(function(err){
if(!err){
res.redirect('/');
}else{
res.redirect('/');
}
})
})
सवाल मैं है, मैं स्कीमा कोडा का उपयोग करने के लिए टिप्पणियाँ कैसे जोड़ सकता हूँ है मैं पहले से ही विकसित किया है?
req.body.post
आउटपुट
{ title: 'Hello World', body: 'This is a body', author: 'Bioshox' }
कौन सा नेवला के लिए स्पष्ट रूप से स्वीकार्य है, लेकिन टिप्पणी कैसे मैं इस बारे में जाना होगा जोड़ने के लिए?
धन्यवाद !!
var comment = {
author: req.body.post.author ,
body: req.body.post.body,
date: new Date()
};
Post.findOneAndUpdate(
{ title: req.body.post.title },
{ $push: { comments: comment }},
{ safe: true, upsert: true },
function(err, blogModels) {
// Handle err
});
यह स्निपेट बस, एक Blog
पोस्ट खोजने की कोशिश करता है, तो यह तो $push
सफलता एक नई टिप्पणी, अन्यथा, एक ब्लॉग पोस्ट एक प्रारंभिक टिप्पणी के साथ जोड़ता है:
'अपरर्ट' क्या है? – chovy
यदि 'अपरर्ट' प्रॉपर्टी' सत्य 'है, तो पहले mongo मिलान' शीर्षक: req.body.post.title' मानदंडों के साथ दस्तावेज़ ढूंढने का प्रयास करें। यदि ऐसा है, तो बस '{$ push ...} 'के साथ दस्तावेज़ अपडेट करें। अन्यथा, मोंगो एक नया दस्तावेज़ बनाता है, इसे डालें और $ पहली टिप्पणी init दबाएं। अधिक जानकारी: http://docs.mongodb.org/manual/reference/command/findAndModify/ –
वास्तव में मुझे लगता है कि अपरर्ट उस शीर्षक के साथ ** ** ** ढूंढना चाहता है और यदि यह मौजूद नहीं है तो पोस्ट पोस्ट करता है टिप्पणी नहीं – mrBorna