Mongo数据库数据插入问题

时间:2019-10-01 23:34:53

标签: javascript node.js mongodb mongoose

当我尝试向Mongo db中插入任何内容时出现此错误。任何帮助将不胜感激。

const mongoose = require('mongoose');
const dbpath = "mongodb+srv://cluster0-bm7js.mongodb.net/classic";

mongoose.connect(dbpath, {useUnifiedTopology: true , useNewUrlParser: true })
  .then(()=> console.log("Now connected to MongoDB!"))
  .catch(err=> console.error("Something went wrong", err));

const gameSchema = new mongoose.Schema( {
  title: String, 
  publisher: String,
  tags: [String],
  date: { 
    type: Date,
    default: Date.now
  },
  onSale: Boolean,
  price: Number
});

const Game = mongoose.model('Game', gameSchema);

async function saveGame() {
  const game = new Game( { 
    title: "Tekken 3",
    publisher: "Neogeo",
    tags: ["adventure", "action"],
    onSale: false,
    price: 69.99,
  });

  const result = await game.save();
  console.log(result);

}

saveGame();

这是我的代码,运行上述代码后出现的错误是

(node:94819) UnhandledPromiseRejectionWarning: MongoError: user is not allowed to do action [insert] on [classic.games]
    at Connection.<anonymous> (/Users/thinkun/Desktop/mongo/node_modules/mongodb/lib/core/connection/pool.js:466:61)
    at Connection.emit (events.js:198:13)
    at processMessage (/Users/thinkun/Desktop/mongo/node_modules/mongodb/lib/core/connection/connection.js:364:10)
    at TLSSocket.<anonymous> (/Users/thinkun/Desktop/mongo/node_modules/mongodb/lib/core/connection/connection.js:533:15)
    at TLSSocket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at TLSSocket.Readable.push (_stream_readable.js:224:10)
    at TLSWrap.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
(node:94819) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:94819) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

不确定为什么Mongo db无法帮助我进行内部工作。

谢谢。

1 个答案:

答案 0 :(得分:1)

const mongoose = require('mongoose');
const dbpath = "mongodb+srv://cluster0-xxxx.mongodb.net/Game";

mongoose.connect(dbpath, {user: 'username', pass: 'password'})
  .then(()=> console.log("Now connected to MongoDB!"))
  .catch(err=> console.error("Something went wrong", err));

连接字符串存在问题。全部用用户名和密码排序。