MongoDB快速入门(Mac)

MongoDB快速入门(Mac)


安装与启动

先去下载

下载解压之后打开终端进入bin目录内

先把mongod丢进终端运行一下,再把mongo丢进去运行,注意顺序不可以颠倒哈

如果以上步骤完成的话,可以输入1+1然后回车,如果返回2的话就说明成功启动了


创建数据库

use 方法

use 库名

MongoDB 中默认数据库是:test

如果还没有创建过任何数据库,则集合/文档将存储在test数据库中

如果库名不存在,则该命令将创建一个新的数据库,否则返回使用现有的数据库

db

显示当前选择的数据库库名

show dbs

显示当前数据库列表


删除数据库

dropDatabase 方法

db.dropDatabase()

删除当前所选数据库,如果没有选择任何数据库,那么它将删除默认的test数据库

配合use 库名 使用,删除数据库


创建集合

createCollection 方法

db.createCollection(name,options)

name 是要创建的集合名,为必填项

参数类型描述
nameString是要创建的集合名,为必填项
optionsDocument是用于指定集合配置的一个文档,为可选项

options 是用于指定集合配置的一个文档,为可选项

db.createCollection("xxx", {
    capped : true, 
    autoIndexId : true, 
    size : 6142800, 
    max : 10000 
    })

show collections 检查创建的集合

MongoDB 中,不需要创建集合,当插入一些文档时,MongoDB 会自动创建集合

参数类型描述
cappedString默认false !如果为true,则启用封闭的集合,上限集合是固定大小的集合,它在达到其最大大小时自动覆盖其最旧的条目 !如果指定true,则还需要指定size参数
autoIndexIdDocument默认值为false !如果为true,则在_id字段上自动创建索引
sizenumber默认值为false 指定上限集合的最大大小(以字节为单位) !如果capped为true,那么还需要指定此字段的值
maxnumber指定上限集合中允许的最大文档数

删除集合

drop 方法

db.collection.drop()

collection为要删除的集合名(下同)

如果选定的集合成功删除,drop()方法将返回true,否则返回false


插入文档

insert 方法

db.collection.insert(document)

save 方法

db.collection.save(document)

db.collection.insert(
    {
        id_:1,
        key:'val',
        key:[
            'val1',
            'val2',
            'val3'
        ]
    }
)

若不在文档中指定_id,那么insertsave方法一样,将会自动分配id

若在文档中指定_id那么save方法将会替换当前包含该_id文档的全部数据,而insert将会报错

若在文档中指定_id存在,insert方法将会报错,save则会覆盖

insertOne 方法

db.collection.insertOne() 单个文档插入到集合中

db.xxx.insertOne(
    {
        key:val
    }
)

insertMany 方法

db.collection.insertMany() 多个文档插入到集合中

db.xxx.insertMany(
    [
        {key1:val1},
        {key2.val2}
    ]
)

查询文档

find 方法

db.collection.find(document) 将以非结构化的方式显示所有文档

pretty 方法

db.collection.find().pretty()结构化的方式显示所有文档

findOne 方法

db.collection.findOne() 只返回一个文档

and 方法

过滤查询

返回key1=val1key2=val2的所有文档

db.collection.find(
    {
        $and:[
            {key1:val1},
            {key2:val2}
        ]
    }
).pretty()

or 方法

返回key1=val1key2=val2的所有文档

db.collection.find(
    {
        $or:[
            {key1:val1},
            {key2:val2}
        ]
    }
).pretty()

and混合or方法

返回key大于50key1等于val1key2等于val2的所有文档

db.collection.find(
    {
        key:{$gt:50},
        $or:[
            {key1:val1},
            {key2:val2}
        ]
    }
).pretty()

运算符查询

操作语法示例
相等:db.collection.find({“key”:”val”}).pretty()
小于ltdb.collection.find({“likes”:{$lt:50}}).pretty()
大于gtdb.collection.find({“likes”:{$gt:50}}).pretty()
小于等于ltedb.collection.find({“likes”:{$lte:50}}).pretty()
大于等于gtedb.collection.find({“likes”:{$gte:50}}).pretty()
不等于nedb.collection.find({“likes”:{$ne:50}}).pretty()

嵌入文档查询

db.collection.insertMany( [
   { name: "warren", age: 25, size: { h: 14, w: 21, uom: "cm" }, score: "A" },
   { name: "anthony", age: 50, size: { h: 8.5, w: 11, uom: "in" }, score: "A" },
   { name: "ben", age: 100, size: { h: 8.5, w: 11, uom: "in" }, score: "D" },
   { name: "glen", age: 75, size: { h: 22.85, w: 30, uom: "cm" }, score: "D" },
   { name: "carl", age: 45, size: { h: 10, w: 15.25, uom: "cm" }, score: "A" }
]);

整个嵌入式文档中相等匹配需要精确匹配指定的val文档,包括字段顺序
正确:db.collection.find( { size : { h : 14 , w : 21 , uom : " cm " } } )
错误:db.collection.find( { size : { w : 21 , h : 14 , uom : " cm " } } )

db.collection.find( { " size.uom " : " in " } )
返回collection中字段为size的嵌套字段uom等于in的所有文档

嵌入文档混合运算符查询

db.collection.find( { "size.h" : { $lt : 15 } } )
返回collection中字段为size的嵌套字段h中值小于15的所有文档

嵌入文档混合运算符以及and方法查询

db.collection.find( { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" } )
返回collection中字段为size的嵌套字段h中值小于15uom嵌套字段等于inscore嵌套字段等于d的所有文档


更新文档

update方法

db.collection.update( { " key " : " old_val " } , { $set : { " key " : " new_val " } } )

默认情况下,MongoDB只会更新一个文档。要更新多个文档,需要将参数multi设置为true

db.collection.update( 
    { "key" : "old_val" } , 
    { $set : 
        { "key" : "new_val" } 
        } , 
    { multi:true } )

save 方法

db.collection.save( { _id : ObjectId() , new_data } )

save将文档数据替换现有文档

db.collection.save(
   {
      "_id" : 100, "key":"val", "key":"val"
   }
)

删除文档

remove 方法

db.collection.remove( { 'key' : 'val' } )

只删除第一条记录

db.collection.remove( { 'key' : 'val' } , 1 )


投影(选择字段)

MongoDB中,当执行find方法时,它默认将显示文档的所有字段
为了限制显示的字段,需要将字段列表对应的值设置为10
1表示显示字段,0表示隐藏字段。

db.collection.find( {}, { key : 1 } )


限制记录数

limit 方法

db.collection.find().limit( number )

如果没有在limit方法中指定number参数的值,那么它将显示集合中的所有文档

skip 方法

db.collection.find().skip( number )

用于跳过文档数量

skip方法默认值为0


sort 方法

db.collection.find().sort( { key : 1 } )

使用指定排序顺序1-1

1用于升序,而-1用于降序。


参考文档.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值