MongoDB VS MySQL-为什么mongo / mongoose自动创建数据库和集合?

领域

从MySQL背景来看,我发现MongoDB有点奇怪。

例如,我还没有创建数据库,但是:

mongoose.connect('mongodb://localhost/kittendb');

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
    // we're connected!
    // Start the application after the database connection is ready
    app.listen(3000);
    console.log("Listening on port 3000");
});

结果:

the kittendb is created // you'll get error in mysql

另一个:

我还没有创建数据库的集合还,但:

var kittySchema = mongoose.Schema({
    name: String
});
var Kitten = mongoose.model('Kitten', kittySchema);
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.save(function (err, fluffy) {
  if (err) return console.error(err);
});

结果:

fluffy is inserted into kittens collection! // you'll get an error in mysql

mongo控制台:

> show dbs
kittendb    0.203125GB
local   0.078125GB
> use kittendb
switched to db kittendb
> db.kittens.find()
{ "__v" : 0, "_id" : ObjectId("5768e747cf72dd364e7b2fdf"), "name" : "fluffy" }

那么mongo或mongoose到底是怎么回事?它到底是怎么知道将小猫保存到我尚未创建小猫收藏中的?

我错过了什么?

罗伯特克莱普

它到底是怎么知道将小猫保存到我尚未创建小猫收藏中的?

猫鼬使用的命名方案基于您的型号名称:

var Kitten = mongoose.model('Kitten', kittySchema);

该模型名为“小猫”默认情况下,Mongoose将小写并对该名称进行复数(因此“ Kitten”变为“ kittens”)并将其用作集合名称。

至于MongoDB自动创建数据库/集合的原因/方式:这是MongoDB创建者做出的设计决定。由于MongoDB中的数据库和集合是无模式的,因此无需进行显式CREATE操作(尽管创建某些特殊类型的集合,MongoDB确实具有db.createCollection()命令)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么MongoDB和MySQL比grep慢?

来自分类Dev

停止mongodb动态创建数据库和集合

来自分类Dev

停止mongodb动态创建数据库和集合

来自分类Dev

Hibernate为什么不为MySQL创建数据库?

来自分类Dev

为什么我应该在NoSql数据库(MongoDB)中有多个集合

来自分类Dev

删除MongoDB数据库和集合

来自分类Dev

使用mongo命令创建MongoDB数据库

来自分类Dev

为什么我无法从mongodb数据库获取数据?

来自分类Dev

为什么我不能在MongoDB中创建数据库

来自分类Dev

为什么我不能在MongoDB中创建数据库

来自分类Dev

为什么与MongoDB,Redis和MySql相比Apache Cassandra的写入速度如此之慢

来自分类Dev

为什么Apache Cassandra的写入速度与MongoDB,Redis和MySql相比如此之慢

来自分类Dev

为什么我的Mongoose查询没有更新MongoDB数据库中嵌套数组中的值?

来自分类Dev

为什么我无法使用 PHP 和 MySQL 将数据提交到数据库?

来自分类Dev

如何使用Mongo DB JAVA驱动程序从MongoDB中的数据库中删除集合?

来自分类Dev

如何使用Mongo Engine从MongoDB获取最新的数据库集合

来自分类Dev

为什么使用MyISAM引擎而不是InnoDB创建默认的“ mysql”数据库?

来自分类Dev

创建表时,为什么MySQL数据库中不存在主键字段?

来自分类Dev

为什么在MySQL数据库中创建表时总是发生此错误?

来自分类Dev

mongodb如何动态创建数据库/集合

来自分类Dev

使用mongodb-memory-server和mongoose创建内存数据库

来自分类Dev

MongoDB聚合vs Mongoose虚拟

来自分类Dev

MySQL数据库时区未正确设置-为什么?

来自分类Dev

无法将数据插入多个数据库Codeigniter(MongoDB和MySQL)

来自分类Dev

hadoop 与 mongodb 和 hadoop vs mongodb

来自分类Dev

为什么我新创建的mongodb本地数据库增加到24GB?

来自分类Dev

为什么我新创建的mongodb本地数据库增加到24GB?

来自分类Dev

在mongodb中创建数据库时出错(在mongo.js中不是有效的数据库名称)

来自分类Dev

在mongodb中创建数据库时出错(在mongo.js中不是有效的数据库名称)

Related 相关文章

  1. 1

    为什么MongoDB和MySQL比grep慢?

  2. 2

    停止mongodb动态创建数据库和集合

  3. 3

    停止mongodb动态创建数据库和集合

  4. 4

    Hibernate为什么不为MySQL创建数据库?

  5. 5

    为什么我应该在NoSql数据库(MongoDB)中有多个集合

  6. 6

    删除MongoDB数据库和集合

  7. 7

    使用mongo命令创建MongoDB数据库

  8. 8

    为什么我无法从mongodb数据库获取数据?

  9. 9

    为什么我不能在MongoDB中创建数据库

  10. 10

    为什么我不能在MongoDB中创建数据库

  11. 11

    为什么与MongoDB,Redis和MySql相比Apache Cassandra的写入速度如此之慢

  12. 12

    为什么Apache Cassandra的写入速度与MongoDB,Redis和MySql相比如此之慢

  13. 13

    为什么我的Mongoose查询没有更新MongoDB数据库中嵌套数组中的值?

  14. 14

    为什么我无法使用 PHP 和 MySQL 将数据提交到数据库?

  15. 15

    如何使用Mongo DB JAVA驱动程序从MongoDB中的数据库中删除集合?

  16. 16

    如何使用Mongo Engine从MongoDB获取最新的数据库集合

  17. 17

    为什么使用MyISAM引擎而不是InnoDB创建默认的“ mysql”数据库?

  18. 18

    创建表时,为什么MySQL数据库中不存在主键字段?

  19. 19

    为什么在MySQL数据库中创建表时总是发生此错误?

  20. 20

    mongodb如何动态创建数据库/集合

  21. 21

    使用mongodb-memory-server和mongoose创建内存数据库

  22. 22

    MongoDB聚合vs Mongoose虚拟

  23. 23

    MySQL数据库时区未正确设置-为什么?

  24. 24

    无法将数据插入多个数据库Codeigniter(MongoDB和MySQL)

  25. 25

    hadoop 与 mongodb 和 hadoop vs mongodb

  26. 26

    为什么我新创建的mongodb本地数据库增加到24GB?

  27. 27

    为什么我新创建的mongodb本地数据库增加到24GB?

  28. 28

    在mongodb中创建数据库时出错(在mongo.js中不是有效的数据库名称)

  29. 29

    在mongodb中创建数据库时出错(在mongo.js中不是有效的数据库名称)

热门标签

归档