2015-11-21 6 views
1

Я только начинаю использовать mongodb и nodejs. Я знаю, что MongoDB не поддерживает joins.I просто ввести данные в MongoDB и мои документы выглядит:Вставить коллекцию, используя mongodb

{ 
    "_id": ObjectId("564dacf84d52785c1d8b4567"), 
    "content": "This blog created by karanSofat", 
    "html": "<p>This blog created by karanSofat</p>\n", 
} 

Теперь комментарии пользователей на этот пост. это должно быть так:

{ 
    "_id": ObjectId("564dacf84d52785c1d8b4567"), 
    "comments": [ 
    { 
     "name": "sumit", 
     "email": "[email protected]", 
     "comment": "this is also well for me", 
     "posted_at": ISODate("2015-11-19T11:06:27.172Z") 
    } 
    ], 
    "content"▼: "This blog created by karanSofat", 
    "html": "<p>This blog created by karanSofat</p>\n", 
} 

Вот мои модели,

//post model 
// grab the mongoose module 
var mongoose = require('mongoose'); 

// define our nerd model 
// module.exports allows us to pass this to other files when it is called 
module.exports = mongoose.model('post', { 
    content : {type : String, default: ''}, 
    html : {type : String, default: ''} 


}); 
//comment model 
var mongoose = require('mongoos 
     module.exports = mongoose.model('comment', { 
     name : {type : String, default: ''}, 
     email : {type : String, default: ''}, 
     comment : {type : String, default: ''}, 
     posted_at : {type : date, default: ''} 

    }); 

Моя проблема в том, что я не знаю, на какой путь я вставляю комментарии помощью данных nodejs и мой документ будет вставлять. Вот мой код:

app.post('/comments/:id', function(req, res) { 
var Comment = require("../app/models/comments");//comment Model 
var blog = require("../app/models/blog");//blog model 

var id = req.params.id; //postId 
var comments = JSON.parse(JSON.stringify(req.body)); //commentdata 

//code Should be here 

res.json({data:id,data2:input}); 
}); 

Пожалуйста, помогите

+0

Вы используете мангуст? или модуль mongodb? – inspired

+0

@ inspired: я использую mongoose ... – Karan

+0

Пожалуйста, разместите схему для '../ app/models/comments' и' ../ app/models/blog'. – inspired

ответ

2

Karan,

Предположим, у вас есть следующие схемы:

var Comments = new Schema({ 
    name: String, 
    email: String, 
    comment: String, 
    , posted_at: Date 
}); 

var BlogPost = new Schema({ 
    content  : String, 
    html  : String, 
    comments : [Comments], 
}); 

mongoose.model('BlogPost', BlogPost); 

Вы можете добавить документ для вставки в массив как такие как:

// retrieve my model 
var BlogPost = mongoose.model('BlogPost'); 

// create a blog post 
var post = new BlogPost(); 

// create a comment 
post.comments.push({ 
    "name": "sumit", 
    "email": "[email protected]", 
    "comment": "this is also well for me", 
    "posted_at": ISODate("2015-11-19T11:06:27.172Z") 
}); 

post.save(function (err) { 
    if (!err) console.log('Success!'); 
}); 
+0

В моем случае есть много сообщений и комментариев пользователей к этим сообщениям. Я хочу связать комментарии с сообщениями. – Karan

Смежные вопросы