-
-
Save mithunsatheesh/8adad40b059866e892ed to your computer and use it in GitHub Desktop.
//require the mongoClient from mongodb module | |
var MongoClient = require('mongodb').MongoClient; | |
//mongodb configs | |
var connectionUrl = 'mongodb://localhost:27017/myproject', | |
sampleCollection = 'chapters'; | |
//We need to insert these chapters into mongoDB | |
var chapters = [{ | |
'Title': 'Snow Crash', | |
'Author': 'Neal Stephenson' | |
},{ | |
'Title': 'Snow Crash', | |
'Author': 'Neal Stephenson' | |
}]; | |
MongoClient.connect(connectionUrl, function(err, db) { | |
console.log("Connected correctly to server"); | |
// Get some collection | |
var collection = db.collection(sampleCollection); | |
collection.insert(chapters,function(error,result){ | |
//here result will contain an array of records inserted | |
if(!error) { | |
console.log("Success :"+result.ops.length+" chapters inserted!"); | |
} else { | |
console.log("Some error was encountered!"); | |
} | |
db.close(); | |
}); | |
}); |
First, I'd got an error explaining I used "db.collection" as a function and it isn't. I'd just changed the way MongoClient is used following the crud mongo tutorial (http://mongodb.github.io/node-mongodb-native/3.1/tutorials/crud/), instantiating MongoClient as client object.
After that, I'd got 2 deprecation warnings: URL parser is deprecated and collection.insert is deprecated. I'd changed the MongoClient instantiation inserting an option ({ useNewUrlParser: true }) and changed .insert to .insertMany. Bellow I pasted a screenshot showing the points I needed to change to make things work.
This is the updated code that worked for me in case anyone is wondering why the main code above isn't functional. There have been modifications to the MongoDb source codes with some deprecation here and there as highlighted in the above code sample.
//require the mongoClient from mongodb module
var MongoClient = require('mongodb').MongoClient;
//mongodb configs
var connectionUrl = 'mongodb://localhost:27017/myproject',
sampleCollection = 'chapters';
//We need to insert these chapters into mongoDB
var chapters = [{
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
},{
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
}];
MongoClient.connect(connectionUrl, { useNewUrlParser: true}, function(err, client) {
console.log("Connected correctly to server");
var db = client.db('myproject');
// Get some collection
var collection = db.collection(sampleCollection);
collection.insertMany(chapters,function(error,result){
//here result will contain an array of records inserted
if(!error) {
console.log("Success :"+result.ops.length+" chapters inserted!");
} else {
console.log("Some error was encountered!");
}
client.close();
});
});
console.log("Success :"+result.ops.length+" chapters inserted!");
^
TypeError: Cannot read property 'length' of undefined
#I am new to mongodb. Someone please suggest how to resolve this error?
console.log("Success :"+result.ops.length+" chapters inserted!"); ^ TypeError: Cannot read property 'length' of undefined
#I am new to mongodb. Someone please suggest how to resolve this error?
change the result.ops.length
to result.insertedCount
I needed to create a mongodb atlas database, you can do it for free and create a cluster and you can get the connection by choosing drivers option
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = "mongodb+srv://username:password@cluster0.lbynzll.mongodb.net/?retryWrites=true&w=majority";
// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(uri, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
}
});
var sampleCollection = 'chapters';
var chapters = [{
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
}, {
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
}];
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("admin").command({ ping: 1 });
console.log("Pinged your deployment. You successfully connected to MongoDB!");
try {
await client.db("mydb").createCollection("chapters");
console.log("Collection chapters created succesfully!");
} catch {
console.log("Collection chapters already exists!");
}
var result = await client.db("mydb").collection("chapters").insertMany(chapters);
// console.log("Success: " + JSON.stringify(result, null, 4) + " chapters inserted!");
console.log("insertedIds: " + result.insertedCount);
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);
Updated code is working:
//require the mongoClient from mongodb module
var MongoClient = require('mongodb').MongoClient;
//mongodb configs
var connectionUrl = 'mongodb://localhost:27017/myproject',
sampleCollection = 'chapters';
//We need to insert these chapters into mongoDB
var chapters = [{
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
},{
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
}];
MongoClient.connect(connectionUrl, function(err, db) {
console.log("Connected correctly to server");
var dbase = db.db("myproject");
// Get some collection
var collection = dbase.collection(sampleCollection);
collection.insert(chapters,function(error,result){
//here result will contain an array of records inserted
if(!error) {
console.log("Success :"+result.ops.length+" chapters inserted!");
} else {
console.log("Some error was encountered!");
}
db.close();
});
});