MongoDB - Error: invalid schema, expected mongodb

49,646

Solution 1

This is because you are using the connection string in an improper format.

You are using localhost:27017/db/chat while it should be mongodb://localhost:27017/db/chat

The pattern for the connection string is mongodb://<HOSTNAME>:<PORT>/<DBNAME>

Article for reference: https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html#mongoclient-connect

Solution 2

I just had this issue as well and it was because I had the protocol wrong:

mongo://localhost:27017/test

The protocol being wrong can also cause this error. It should be like this:

mongodb://localhost:27017/test

Solution 3

Sometimes, error might be with the quotes around environment variables. Remove them once and try. Might help.

Error might be with :

 set DATABASE_URI='mongodb://localhost:1000/my_app' && node index.js

Correct command will be:

  set DATABASE_URI=mongodb://localhost:1000/my_app && node index.js

Solution 4

Try this, it works:

mongoose.connect('mongodb://localhost:27017/shopping');

Solution 5

Just figured out the same problem. Damned windows save quotes in environment.

So if you use windows and wrote this way SET MONGO_URL="mongodb://localhost:27017/{name of your db}" It is not correct.

Correct way is SET MONGO_URL=mongodb://localhost:27017/{name of your db} without quotes.

Also i discovered that you must write protocol exactly - mongodb. There is code what check the protocol from file url_parser.js

var result = parser.parse(url, true);

if(result.protocol != 'mongodb:') {
    throw new Error('invalid schema, expected mongodb');
}
Share:
49,646
Ahmed202
Author by

Ahmed202

Updated on July 09, 2022

Comments

  • Ahmed202
    Ahmed202 almost 2 years

    I'm new in building application with MEAN Stack, I'm trying to build a real time chat app, here is my server side :

    console.log("Server running...!");
    
    var mongo=require('mongodb').MongoClient;
    var client=require('socket.io').listen(8080).sockets;
    
    mongo.connect('localhost:27017/db/chat',function(err,db){
    if(err)  throw err;
    
    client.on('connection',function(socket){
    console.log('someone has connected !');
    
    //waiting for input
    socket.on('input',function(data){
    console.log(data);
    });
    
    });
    
    });
    

    I am sure that i created a data base called chat with mongodb, also mongo is waiting for connection. But when i run the server with node server.js an error occurs :

    Server running...!
    C:\Users\azus\Desktop\Psirt\codemaster\node_modules\ mongodb\lib\url_parser.js:20
      throw new Error('invalid schema, expected mongodb');
      ^
    
    Error: invalid schema, expected mongodb
    at module.exports (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mong
     odb\lib\url_parser.js:20:11)
    at connect (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mongodb\lib
     \mongo_client.js:125:16)
    at Function.MongoClient.connect (C:\Users\azus\Desktop\Psirt\code-master\nod
    e_modules\mongodb\lib\mongo_client.js:109:3)
    at Object.<anonymous> (C:\Users\azus\Desktop\Psirt\code-master\server.js:6:8
    )
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
    
    C:\Users\azus\Desktop\Psirt\code-master>
    

    I had been blocked at this phase for weeks, could anyone help on this?

    Thanks.

  • user25794
    user25794 over 6 years
    This seems to be the case on WIndows 10 at least, haven't tested other systems. Thanks!
  • Rohan_Paul
    Rohan_Paul about 6 years
    Beautifully worked in MongoDB 3.6.2 and Ubuntu 16.04
  • Josh Peak
    Josh Peak almost 6 years
    Just had the same issue with docker-compose environment variables. I needed to not have it wrapped in any quotes (single or double). This worked for me. MONGODB_URI=mongodb://mongo:27017/
  • BRasmussen
    BRasmussen about 5 years
    Using the mongo-seeding-cli (github.com/pkosiec/mongo-seeding/tree/master/cli). This was the issue for me. Their example for specifying the host includes quoting. However, including the quotes seems to cause OP's error.
  • jrh
    jrh almost 5 years
    Users of nosqlclient should note that it requires urls to start with mongdb://, a url like localhost will not work.