mongodb创建、删除、切换

本文介绍了MongoDB的基本操作,包括数据库的创建、切换和删除,集合的建立与数据的插入及查询等。通过示例展示了如何使用MongoDB进行高效的数据管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的查看与我们平时的mysql的sql语句一样 

show databases;


切换、删除数据库

例如:删除一个叫local的数据库

> use local
switched to db local
> db.

> db.dropDatabase()
{ "dropped" : "local", "ok" : 1 }


创建数据库,插入数据

例如:创建一个mymongodb的数据库
> use mymongodb
switched to db mymongodb

> db.person.insert({'name':'aaa','age':'222'})
WriteResult({ "nInserted" : 1 })

建立一个 test 的集合并写入一些数据. 建立两个对象 j t , 并保存到集合中去.
在例子里 “>” 来表示是 shell 输入提示符
> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3 }
> db.things.save(j);
> db.things.save(t);
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
>
有几点需要注意一下:
不需要预先创建一个集合. 在第一次插入数据时候会自动创建.

在文档中其实可以存储任何结构的数据, 当然在实际应用我们存储的还是相同类型文
档的集合. 这个特性其实可以在应用里很灵活, 你不需要类似 alter table 语句来修改你
的数据结构
每次插入数据时候集合中都会有一个 ID, 名字叫 _id.
下面再加点数据:
> for( var i = 1; i < 10; i++ ) db.things.save( { x:4, j:i } ); > db.things.find();
{"name" : "mongo" , "_id" : ObjectId("497cf60751712cf7758fbdbb")}
{"x" : 3 , "_id" : ObjectId("497cf61651712cf7758fbdbc")}
{"x" : 4 , "j" : 1 , "_id" : ObjectId("497cf87151712cf7758fbdbd")}
{"x" : 4 , "j" : 2 , "_id" : ObjectId("497cf87151712cf7758fbdbe")}
{"x" : 4 , "j" : 3 , "_id" : ObjectId("497cf87151712cf7758fbdbf")}
{"x" : 4 , "j" : 4 , "_id" : ObjectId("497cf87151712cf7758fbdc0")}
{"x" : 4 , "j" : 5 , "_id" : ObjectId("497cf87151712cf7758fbdc1")}
{"x" : 4 , "j" : 6 , "_id" : ObjectId("497cf87151712cf7758fbdc2")}
{"x" : 4 , "j" : 7 , "_id" : ObjectId("497cf87151712cf7758fbdc3")}
{"x" : 4 , "j" : 8 , "_id" : ObjectId("497cf87151712cf7758fbdc4")}
请注意一下, 这里循环次数是 10, 但是只显示到第 8 , 还有 2 条数据没有显示. 如果想继
续查询下面的数据只需要使用”it”命令, 就会继续显示下面的数据:
{ "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
{ "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
has more
> it
{ "_id" : ObjectId("4c220a42f3924d31102bd868"), "x" : 4, "j" : 19 }
{ "_id" : ObjectId("4c220a42f3924d31102bd869"), "x" : 4, "j" : 20 }



MongoDB 支持的数据类型中, _id 是其自有产物,下面对其做些简单的介绍。
存储在 MongoDB 集合中的每个文档( document)都有一个默认的主键_id,这个主键名称是
固定的,它可以是 MongoDB 支持的任何数据类型,默认是 ObjectId。在关系数据库 schema
设计中,主键大多是数值型的,比如常用的 int long,并且更通常的是主键的取值由数据
库自增获得,这种主键数值的有序性有时也表明了某种逻辑。反观 MongoDB,它在设计之
初就定位于分布式存储系统,所以它原生的不支持自增主键。
_id key 举例说明 :
当我们在往一个集合中写入一条文档时,系统会自动生成一个名为_id key.如:
> db.c1.find()
{ "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "Tony", "age" : 20 }
{ "_id" : ObjectId("4fb5fab96d0f9d8ea3fc91a9"), "name" : "Joe", "age" : 10 }
 
这里多出了一个类型为 ObjectId key ,在插入时并没有指定,这有点类似 Oracle rowid
的信息,属于自动生成的。
MongoDB 中,每一个集合都必须有一个叫做_id 的字段,字段类型默认是 ObjectId ,换句话
说,字段类型可以不是 ObjectId,例如:
> db.c1.find()
{ "_id" : ObjectId("4fb5faaf6d0f9d8ea3fc91a8"), "name" : "Tony", "age" : 20 }
{ "_id" : ObjectId("4fb5fab96d0f9d8ea3fc91a9"), "name" : "Joe", "age" : 10 }
{ "_id" : 3, "name" : "Bill", "age" : 55 }
虽然_id 的类型可以自由指定,但是在同一个集合中必须唯一,如果插入重复的值的话,系统
将会抛出异常,具体如下:
> db.c1.insert({_id:3, name:"Bill_new", age:55})
E11000 duplicate key error index: test.c1.$_id_ dup key: { : 3.0 }
>
因为前面已经插入了一条_id=3 的记录,所以再插入相同的文档就不允许了。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值