ipalibowhyte
ipalibowhyte

Reputation: 1563

How do you insert an array of object into Mongodb node.js

Basically i want to insert into my Mongodb collection called "Events" an array of objects called "Events" with an id for each entry into the array.

This is the result i want to get in json:

{
    "events" : [
        {
            "_id" : ObjectId("53a99cc608ad49712a830081"),
            "eTitle" : "Freshers Fair",
            "eDesc" : "Bring some friends with you oh wait, you have non ha !",
            "eDate" : "2014-06-19 11:20",
            "eLink" : "http://fair.com",
            "eEvent" : "NEFS"
        },

        {
            "_id" : ObjectId("53a99cc608ad49712a830082"),
            "eTitle" : "Blahh",
            "eDesc" : "Blah fdinidf !",
            "eDate" : "2014-06-19 11:20",
            "eLink" : "http://google.com",
            "eEvent" : "NEFS"
        }
    ]
}

So far this is the result i have:

[
 { 
   "_id":"53a9b5ed745363432d823d7a",
   "eTitle":"jrnfdeiujn rd",
   "eDesc":"grfdsreds",
   "eDate":"2014-07-05 22:33",
   "eLink":"reser",
   "eEvent":"Victoria Center"
 },
 { 
   "_id":"53a9b771745363432d823d7b",
   "eTitle":"Hello worlds",
   "eDesc":"blah",
   "eDate":"2014-07-20 22:33",
   "eLink":"http://google.com",
   "eEvent":"social"
 }
]

This is how i insert data with node.js:

// Set our collection
    var collection = db.get('Events');

    // Submit to the DB
    collection.insert({
        "eTitle" : eTitle,
        "eDesc" : eDesc,
        "eDate" : eDate,
        "eLink" : eLink,
        "eEvent" : eEvent
    }, function (err, doc) {
        if (err) {
            // If it failed, return error
            res.send("There was a problem adding the information to the database.");
        }
        else {
            // If it worked, set the header so the address bar doesn't still say /adduser
            res.location("eventlist");
            // And forward to success page
            res.redirect("eventlist");
        }
    });

So please i how do i make the format look this the first json format i provided. sorry for the nooby question, just started learning node ! Thanks alot

UPDATE

To post Events:

router.get('/eventlist', function(req, res) {
var db = req.db;
var collection = db.get('Events');
collection.find({},{},function(e,docs){
    console.log(docs);
    res.send(docs);
   // res.render('eventlist', {docs: JSON.stringify(docs), title: 'Test'});
}); 

});

Upvotes: 0

Views: 4446

Answers (1)

tymeJV
tymeJV

Reputation: 104775

You can do this:

collection.find({},{},function(e,docs){
    var doc = { Events : docs };
    console.log(doc);
    res.send(doc);
    // res.render('eventlist', {docs: JSON.stringify(docs), title: 'Test'});
});

Upvotes: 2

Related Questions