MongoDB基础命令杂记

一、MongoDB安装使用

1、安装启动MongoDB

1.1 下载安装

官网:
https://www.mongodb.com/

rpm下载地址:
http://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/

[[email protected] ~]# ls mongodb-3.0.0/
mongodb-org-3.0.0-1.el7.x86_64.rpm
mongodb-org-mongos-3.0.0-1.el7.x86_64.rpm
mongodb-org-server-3.0.0-1.el7.x86_64.rpm
mongodb-org-shell-3.0.0-1.el7.x86_64.rpm
mongodb-org-tools-3.0.0-1.el7.x86_64.rpm

暂时不需要分片功能(mongos),只安装这三个包:
[[email protected] mongodb-3.0.0]# yum install mongodb-org-server-3.0.0-1.el7.x86_64.rpm mongodb-org-shell-3.0.0-1.el7.x86_64.rpm mongodb-org-tools-3.0.0-1.el7.x86_64.rpm 

查看包组相关信息:
[[email protected] ~]# rpm -qi mongodb-org-server

查看包组生成的文件:
[[email protected] ~]# rpm -ql mongodb-org-server

1.2 配置,启动

创建数据存放目录:
[[email protected] ~]# mkdir -pv /mongodb/data
[[email protected] ~]# chown -R mongod:mongod /mongodb/

配置
[[email protected] ~]# vim /etc/mongod.conf 

dbpath=/mongodb/data

#注释掉监听地址后,默认监听在0.0.0.0地址上
#bind_ip=127.0.0.1

#开启WEB监听
httpinterface=true
rest=true

启动服务:
[[email protected] ~]# systemctl start mongod

服务启动后初始化的数据文件:
[[email protected] ~]# ls /mongodb/data/
journal  local.0  local.ns  mongod.lock  storage.bson  _tmp

访问web接口:http://10.201.106.131:28017/

1.3 客户端连接

获取客户端命令使用帮助:
[[email protected] ~]# mongo -h

连接:
[[email protected] ~]# mongo --host 10.201.106.131

显示当前有多少个数据库:
> show dbs

MongoDB可以不创建数据库,直接使用(在库里面创建表后,库会自动创建出来,延时创建):
> use testdb
switched to db testdb
> show dbs
local  0.078GB

2、MongoDB基本使用

2.1 基本操作

获取帮助:
> help

显示用户(默认没有开启认证信息):
> show users

显示已存在的数据库
> show dbs

显示当前库的collections(名称列表)
> show collections

查看可以用在db级别的命令:
> db.help()

2.2 db命令

查看当前数据库信息:
> db.stats()

查看数据库版本号:
> db.version()

查看服务器级别状态信息
> db.serverStatus()

显示当前库内的所有名称列表:
> db.getCollectionNames()

3、CRUD语句

3.1 创建

创建collection并插入数据
> db.students.insert({name:"tom",age:23})
WriteResult({ "nInserted" : 1 })

查看collection:
> show collections
students
system.indexes
同时自动创建了数据库:
> show dbs;
local   0.078GB
testdb  0.078GB

查看collection状态信息:
> db.students.stats()

查看库里的collection:
> db.getCollectionNames()
[ "students", "system.indexes" ]

继续在students插入数据:
> db.students.insert({name:"jerry",age:40,gender:"M"})
WriteResult({ "nInserted" : 1 })

3.2 文档(collection)操作

获取文档操作命令:
> db.mycollect.help()

查看一个命令的使用帮助:
> db.mycollect.find().help()

查看collection里面的文档:
> db.students.find()
{ "_id" : ObjectId("587bc5e2a954a5d5a876fb24"), "name" : "tom", "age" : 23 }
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "age" : 40, "gender" : "M" }

统计collection里面的文档个数
> db.students.count()
2

多插入几个数据
> db.students.insert({name:"Ou Yangfeng",Age:90,Course:"HaMegong"})
WriteResult({ "nInserted" : 1 })
> db.students.insert({name:"Yang Guo",Age:20,Course:"Meinv Quan"})
WriteResult({ "nInserted" : 1 })
> db.students.insert({name:"Guo Jing",Age:40,Course:"Xianglong Shibazhang"})
WriteResult({ "nInserted" : 1 })

3.3 查询(find)

查询年龄大于30的记录:
> db.students.find({Age: {$gt: 30}})
{ "_id" : ObjectId("587bd99ea954a5d5a876fb26"), "name" : "Ou Yangfeng", "Age" : 90, "Course" : "HaMegong" }
{ "_id" : ObjectId("587bd9f4a954a5d5a876fb28"), "name" : "Guo Jing", "Age" : 40, "Course" : "Xianglong Shibazhang" }

查找年龄20和40的记录:
> db.students.find({Age:{$in: [20,40]}})
{ "_id" : ObjectId("587bd9bfa954a5d5a876fb27"), "name" : "Yang Guo", "Age" : 20, "Course" : "Meinv Quan" }
{ "_id" : ObjectId("587bd9f4a954a5d5a876fb28"), "name" : "Guo Jing", "Age" : 40, "Course" : "Xianglong Shibazhang" }

查找年龄不是20和40的记录:
> db.students.find({Age:{$nin: [20,40]}})

$or: 或运算,语法格式{$or: [{<expression1>},{...}]}
$and: 与运算
$not:非运算
$nor:反运算,返回不符指定条件的所有文档

查找Age=20,40或者age=20,40的记录
> db.students.find({$or:[{Age:{$in: [20,40]}},{age:{$in: [20,40]}}]})
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "age" : 40, "gender" : "M" }
{ "_id" : ObjectId("587bd9bfa954a5d5a876fb27"), "name" : "Yang Guo", "Age" : 20, "Course" : "Meinv Quan" }
{ "_id" : ObjectId("587bd9f4a954a5d5a876fb28"), "name" : "Guo Jing", "Age" : 40, "Course" : "Xianglong Shibazhang" }

查看有Gender字段的文档:
> db.students.find({gender: {$exists: true}})
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "age" : 40, "gender" : "M" }

3.4 更新

文档操作帮助:
> db.mycoll.help()

下面命令默认只更新一个文档(一行),如需更新整个collection要加multi_bool参数
db.mycoll.update()

修改tom的年龄为21:
> db.students.update({name:"tom"},{$set: {age: 21}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.students.find({name:"tom"})
{ "_id" : ObjectId("587bc5e2a954a5d5a876fb24"), "name" : "tom", "age" : 21 }

修改age字段名为Age:
原始数据:
> db.students.find({age: {$exists: true}})
{ "_id" : ObjectId("587bc5e2a954a5d5a876fb24"), "name" : "tom", "age" : 21 }
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "age" : 40, "gender" : "M" }
修改:
> db.students.update({},{$rename: {"age": "Age"}},false,true)
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 2 })

3.5 删除

删除年龄为21的文档(行):
> db.students.remove({Age: 21})

删除collection(类似删除整张表):
> db.teachers.drop()
true

删除当前数据库:
> db.dropDatabase()

> show dbs
local  0.078GB

3.6 其他

统计查询个数:
> db.students.find({Age: {$in: [20,40]}})
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "gender" : "M", "Age" : 40 }
{ "_id" : ObjectId("587bd9bfa954a5d5a876fb27"), "name" : "Yang Guo", "Course" : "Meinv Quan", "Age" : 20 }
{ "_id" : ObjectId("587bd9f4a954a5d5a876fb28"), "name" : "Guo Jing", "Course" : "Xianglong Shibazhang", "Age" : 40 }
> db.students.find({Age: {$in: [20,40]}}).count()
3

只显示一行
> db.students.find({Age: {$in: [20,40]}}).limit(1)
{ "_id" : ObjectId("587bd2f0a954a5d5a876fb25"), "name" : "jerry", "gender" : "M", "Age" : 40 }

跳过第一行,后显示剩余行:
> db.students.find({Age: {$in: [20,40]}}).skip(1)
{ "_id" : ObjectId("587bd9bfa954a5d5a876fb27"), "name" : "Yang Guo", "Course" : "Meinv Quan", "Age" : 20 }
{ "_id" : ObjectId("587bd9f4a954a5d5a876fb28"), "name" : "Guo Jing", "Course" : "Xianglong Shibazhang", "Age" : 40 }

符合条件时只显示其中一个:
> db.students.findOne({Age: {$gt: 10}})
{
    "_id" : ObjectId("587bd2f0a954a5d5a876fb25"),
    "name" : "jerry",
    "gender" : "M",
    "Age" : 40
}

原文地址:http://blog.51cto.com/zhongle21/2107514

时间: 2024-08-05 08:04:36

MongoDB基础命令杂记的相关文章

MongoDb基础命令

一些基础忘记随时查看.. #整备恢复 mongodump --port 20001 --authenticationDatabase=admin -u *  -d lvlv -c lvlv -o /home mongorestore --drop  --host 172.16.201.74  --port 20001 --authenticationDatabase=admin -umgbackup -d test /tmp/liding/test/liding.bson #基于时间备份oplo

Mongodb基础命令与用法

查看版本号 [[email protected]_0_12_centos bin]# ./mongo -version MongoDB shell version v3.6.5 git version: a20ecd3e3a174162052ff99913bc2ca9a839d618 OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 allocator: tcmalloc modules: none build environment: distm

2、链接数据库+mongodb基础命令行+小demo

链接数据库并且打印出数据的流程:1.在CMD里面输入 mongod 2.在CMD里面输入 mongo 3.在输入mongodb命令行里面进行操作,首先输入 show dbs 来查看是否能够链接得上库4.定义db var db = connect('log'); //链接数据库 链接的是哪一个数据库?5.插入数据:db.login.insert(jsonData); //插入数据 5.命令行一:基础命令行(1).查看存在数据库命令 : show dbs (2).查看数据库版本命令 : db.ver

MongoDB 基础命令行

本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 登录和退出 mongo命令直接加MongoDB服务器的IP地址(比如:mongo 10.77.20.xx),就可以利用Mongo的默认端口号(27017)登陆Mongo,然后便能够进行简单的命令行操作. 至于退出,直接exit,然后回车就好了. [plain] $ mongo 10.77.20.xx MongoDB shell

MongoDB 基础命令——数据库表的增删改查——遍历操作表中的记录

遍历更新数据表中的记录 /***添加 Order[订单表中 订单中商品ID与商品数量]productionDate 事例数据 [ { "productionId":100001,"count":10 } , { "productionId":100002,"count":9 } ]***/ db.order.find().forEach( function(item){ db.order.update({_id:item._i

Linux基础命令杂记

今天又一次搞Linux生产环境搭建.这是种步骤很多,很繁琐而且又不得不做的事情.虽然做过很多次,但还是有很多步骤.命令不记得,每一次到处找资料很麻烦,于是将一些步骤记下,以便查找. 登录远程MySQL mysql -h 192.168.1.100 -u root -p 给MySQl非root账户分配权限 给账号user1 密码为123456 的用户testDB数据库的所有表的select,insert,update,delete权限: grant select,insert,update,del

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

蓝的成长记——追逐DBA(7):基础命令,地基之石

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39738501 *******

MongoDB 常用命令总结

MongoDB 常用命令总结 简单的的增删改查数据 在查询结果中指定显示或者不显示某个字段 例如,我们希望在 lessons 集合中查找所有数据,但是不希望在返回结果中包含 slides 字段:因为 slides 是一个巨长的以 base64 表示的图片数组,影响查询结果的阅读. 那么我们就可以在 query object 后面跟上一个参数.如下: db.lessons.find({}, {slides:0}); 同样也可以明确指定显示哪些字段: db.bios.find( { }, { nam