MongoDB Shell 常用操作

数组查询

数组查询

MongoDB 中有子文档的概念,一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同,在查询时,语法有一些注意点。

例子代码,假如我们的一个集合(tests)中存在标签键,有如下模式:

tags: [ObjectId]

查询含有某个标签 ID 的文档

db.tests.find({tags: tagId});

我现在有一组标签 tagIds,即是数组,需要查询含有该数组中任一元素的文档,此时需要用到 $in 操作符

db.tests.find({tags: {$in: tagIds}});

如需唯一匹配该数组,与通常查询无异

db.tests.find({tags: tagIds});

如不考虑顺序关系影响,即同时含有 tagIds 中的每个元素,用 $all

db.tests.find({tags:
{$all: tagIds}});

MongoDB数据导出及导入

我目前用到的分别是 mongodump 和 mongorestore,他们语法挺相似。

导出

mongodump --host localhost:27017 /data/backup/csser.com/csser.3-9/

表示将当前数据库导出到 csser.3-9 目录中去,导入用 mongorestore 即可恢复。

导入

mongorestore --host localhost:27017 /data/backup/csser.com/csser.3-9/

表示将 csser.3-9 目录下的数据导入到 MongoDB 中。

安全停止并退出MongoDB

安全停止并退出 MongoDB

无论如何都要避免直接 kill
-9
 MongoDB 进程,如需正常安全的退出,向进程发送 SIGINT 或 SIGTERM 信号,如:

$ sudo kill -2 pid // SIGINT
// 或
$ sudo kill pid // SIGTERM

查看集合占用空间

查看集合占用空间

> db.sessions.dataSize()
22658540

监控和释放MongoDB占用的内存

监控和释放 MongoDB 占用的内存

查看内存使用情况:

PRIMARY> use csser
switched to db csser
PRIMARY> db.serverStatus().mem
{
	"bits" : 64,
	"resident" : 82,
	"virtual" : 5366,
	"supported" : true,
	"mapped" : 2463,
	"mappedWithJournal" : 4926
}

释放内存:

db.runCommand({closeAllDatabases:1})

查看MongoDB连接数

查看 MongoDB 连接数

> db.serverStatus().connections
{ "current" : 10, "available" : 809 }

进入Shell

进入 Shell

通过 mongo 命令连接数据库后,会自动进入 MongoDB Shell,默认连接的是 test 数据库,进行如下操作了解 Shell 基本指令:

> help
db.help()                    #查看 db 方法
db.mycoll.help()             #查看集合方法
rs.help()                    #查看 replica set 方法
help admin                   #管理员帮助
help connect                 #连接数据库帮助
help keys                    #快捷键帮助
help misc                    #了解 misc
help mr                      #mapreduce

show dbs                     #打印本服务器存在的数据库名称列表
show collections             #打印当前数据库的集合列表
show users                   #打印当前数据库的用户
show profile                 #打印 1s 内的 system.profile
show logs                    #打印 logger 名称
show log [name]              #打印内存中最新的一条日志记录,[name] 默认为 ‘global‘
use <db_name>                #切换数据库
db.foo.find()                #列出集合 foo 中的对象列表
db.foo.find( { a : 1 } )     #列出集合 foo 中满足条件 a== 1 的对象列表
it                           #查看 find 返回列表的其余部分
DBQuery.shellBatchSize = x   #设置 shell 默认显示的项的个数
exit                         #退出 mongodb shell

MongoDB shell 内嵌了 Javascript 解析器,所以可以在其中书写 Javascript 代码。

连接数据库

连接数据库

mongo [options] [db address] [文件名 (以.js结尾)]

db address 可以只指定数据库名(比如:csser),此时连接本地数据库csser。

也可以这样:192.169.0.5:27018/csser,表明连接192.169.0.5服务器27018端口的csser数据库,端口号可以省略,默认为27017。

如果指定文件名,在不指定 --shell 参数的情况下,进程在执行完这些js文件之后会自动退出,文件名必须以.js结尾。

查看 MongoDB 版本:

mongo --version

在运行 mongo 命令时不自动连接数据库:

mongo --nodb

MongoDB Shell 常用操作,布布扣,bubuko.com

时间: 2024-10-21 07:30:16

MongoDB Shell 常用操作的相关文章

Hive Shell常用操作

1.本文命令的两种模式: 交互模式,即hive的shell环境:hive > …. 非交互模式:普通的Linux命令模式:%..... 2.Hive Shell常用操作 1) hive -e:从命令行执行指定的HQL,不需要分号: % hive -e 'select * from dummy' > a.txt 2) hive –f: 执行HQL脚本 % hive -f /home/my/hive-script.sql 3) hive -i:在进入交互模式之前,执行初始化sql文件 % hive

php中的mongodb select常用操作代码示例【转载】

前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb.下面说一下,mongodb select的常用操作 测试数据: 复制代码代码如下: { "_id" : 1, "title" : "红楼梦", "auther" : "曹雪芹", "typeColumn" : "test", "money" : 80, &q

MongoDB(三) 常用操作

MongoDB 常用操作 # 查看索引是否存在 > db.boundary.ensureIndex({ "geometry" : "2dsphere" } ) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 2, "numIndexesAfter" : 2, "note" : "all in

MongoDB Shell 常用命令

MongoDB 是一款非常热门的NoSQL 数据库管理系统,官方下载地址是:MongoDB, 我在LocalHost安装的是 Enterprise Server 版本,默认安装文件目录是:C:\Program Files\MongoDB\Server\3.2\bin,点击 Windows+R,输入cmd,启动Command Prompt,进入到安装目录 每次打开Command Prompt都需要进入到MongoDB的安装目录十分麻烦,可以修改Computer的Environment Variab

MongoDB shell常用命令

Shell操作数据库: 1.  超级用户相关: 1. #进入数据库admin use admin 2. #增加或修改用户密码 db.addUser('name','pwd') 3. #查看用户列表 db.system.users.find() 4. #用户认证 db.auth('name','pwd') 5. #删除用户 db.removeUser('name') 6. #查看所有用户 show users 7. #查看所有数据库 show dbs 8. #查看所有的collection sho

HBase基础之Hbase shell常用操作

一般操作 查看服务器状态 status 查看hbase版本 version DDL操作 创建表 create 'member','member_id','address','info' 创建了3个列族,分别是member_id, address, info 知识点回顾:cf是schema的一部分,而column不是. 查看表信息 describe 'member' DESCRIPTION ENABLED 'member', {NAME => 'address', DATA_BLOCK_ENCOD

70个shell常用操作

1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 3) 如何计算传递进来的参数 ? $# 4) 如

shell常用操作积累

1. 拼接字符串* #!/bin/sh write_log(){ local up_name=$1 local num=${#string} while [ $num -le 256 ]; do up_name="$up_name*" num=$(($num + 1)) done echo $up_name } write_log "wang" 输出: wang*****************************************************

MongoDB数据库常用操作

1. 删除文档中的一个字段 db.<集合名>.update({选中某个或某些字段的条件}, {$unset: {字段名: 1}}) 2. 给文档添加一个字段 db.<集合名>.update({选中某个或某些字段的条件},{$set: {字段名: 字段值}}) 当然这个方法一般是用来修改字段的值的,但是如果不存在这个字段,那么就会自动创建这个字段了.