关闭

MongoDB的数据库和集合的基础操作

标签: mongodb
1641人阅读 评论(0) 收藏 举报
分类:

启动MongoDB的服务

sudo service mongodb start

进入MongoDB命令行操作界面

mongo

显示数据库列表

show dbs

切换当前数据库(创建数据库)

use [database_name]

删除当前数据库

db.dropDatabase()

显示当前数据库中的集合

show collections

创建集合

db.createCollection("BizUser")

创建集合(带初始化参数)

  • capped:类型为boolean,如果为true则为创建一个固定大小的集合,当集合中的数据条目达到最大时自动覆盖以前的条目。
  • autoIndexID:类型为boolean,默认为false,如果设置为true,则会在_id上创建索引。
  • size:指定集合字节最大值,当capped为true时需要指定。单位为byte
  • max:指定集合中数据的最大条数。
db.createCollection(
    "BizUser",
    {capped:1,autoIndexID:1,size:6142800,max:10000}
)

删除集合,下面代码是删除BizUser集合的示例

db.BizUser.drop()

添加与修改操作

向集合中插入数据,insert与save都是向集合汇总插入数据。如果新增的数据中有主键,并且重复,则使用insert会报错,但是save会更改原来的数据。下面代码是向BizUser集合中插入数据的示例

db.BizUser.insert([{name:"user1",password:"123456"},{name:"user2",password:"123"}])

db.BizUser.save([{name:"user1",password:"123456"},{name:"user2",password:"123"}])

也可以先定义文档再往集合中插入

user1=({name:"user1",password:"111"})
db.BizUser.insert(user1)

更新文档,下面代码是把name为user1的第一条文档更新为{name:”cx”,age:22}

db.BizUser.update({name:"user1"},{name:"cx",age:22})

如果只是需要设置文档里的指定的一些域的值,则需要加$set关键字,下面代码是把name为user1的第一条文档的age值更更新为22,sex的值更新为”M”

db.BizUser.update({name:"user1"},{$set:{age:22,sex:"M"}})

如果是要更新所有符合查询条件的文档,则需要加上multi:true,下面代码是把所有age为22的文档中的age的值改为23

db.BizUser.update({age:"22"},{$set:{age:23}})

查询操作

查看集合下的数据,不带任何参数则默认返回所有的数据

db.BizUser.find()

使用pretty()方法使显示的结果更美观

db.BizUser.find().pretty()

查询中的AND,在find()中传入多个键值对时,即会当作AND查询处理。下面代码是在BizUser集合中查找age为18并且sex为“M”的数据

db.BizUser.find({age:"18",sex:"M"})

查询中的OR,M哦能够DB中,OR查询语句以$or作为关键词。下面代码是在BizUser集合中查找age为18或者age为19的数据

db.BizUser.find(
    {
        $or:[
            {age:"18"},
            {age:"19"}
        ]
    }
)

同时使用AND和OR,下面代码是在BizUser集合中查找sex为“F”,并且age大于30或者name等于user1的数据。
$gt表示大于、$lt表示小于、$le表示小于等于、$ge表示大于等于、$ne表示不等于)

db.BizUser.find(
    {
        sex:"F",
        $or:[
            {age:{$gt:30}},
            {name:"user1"}
        ]
    }
)

条件操作符1

  • $gt表示大于
  • $lt表示小于
  • $ge表示大于等于
  • $le表示小于等于
  • $ne表示不等于
db.BizUser.find({age:{$le:22}})

条件操作符2($type)
type的值:
- 1-双精度
- 2-字符串
- 3-对象
- 4-数组
- 5-二进制数据
- 7-对象ID
- 8-布尔类型
- 9-数据
- 10-空
- 11-正则表达式
- 13-JS代码
- 14-符号
- 15-有作用域的JS代码
- 16-32位整型数
- 17-时间戳
- 18-64位整型数
- 255-Min key
- 127-Max key

下面代码是查询name的类型为字符串的数据

db.BizUser.find({name:{$type:2}})

limit读取指定数量的数据记录,下面代码是读取BizUser集合中前10条记录

db.BizUser.find().limit(10)

skip读取时跳过指定数量的数据记录,下面代码是读取BizUser集合中第6条到第15条记录

db.BizUser.find().limit(10).skip(5)

sort对查询的结果进行排序,下面代码是读取BizUser集合中的数据,并按照age进行升序排序

  • 1表示升序
  • -1表示降序
db.BizUser.find().sort({"age":1})

删除操作

使用remove()进行删除,下面代码是删除集合中name为user1的文档

db.BizUser.remove({name:"user1"})
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12561次
    • 积分:207
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    文章分类
    文章存档
    最新评论