首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

mongodb学习之:数据库命令以及固定集合

2023-11-12 来源:花图问答

的方式,其实在这背后,这个函数运行的是drop命令。可以用runCommand达到同样的效果。

我们首先新建一个集合作为测试使用:

> use maple1

switched to db maple1

> db.maple1.insert({‘name‘:‘zhanghongfeng‘})

WriteResult({ "nInserted" : 1 })

删除掉这个集合,反馈的结果中ok:1代表成功

> db.runCommand({"drop":"maple1"})

{ "ns" : "maple1.maple1", "nIndexesWas" : 1, "ok" : 1 }

如果操作失败了,会有errmsg提示失败的原因

> db.runCommand({"drop":"maple1"})

{

"ok" : 0,

"errmsg" : "ns not found",

"code" : 26,

"codeName" : "NamespaceNotFound"

}

如果想查看所有的命令在shell中运行db.listCommands()就可以得到所有的命令。下面列举下Mongodb最常用的命令。

1 buildInfo: 返回Mongodb服务器的版本号和主机的操作系统

> db.runCommand({"buildInfo":1})

{

"version" : "3.4.7",

"gitVersion" : "cf38c1b8a0a8dca4a11737581beafef4fe120bcd",

"modules" : [ ],

"allocator" : "tcmalloc",

"javascriptEngine" : "mozjs",

"sysInfo" : "deprecated",

"versionArray" : [

3,

4,

7,

0

],

"openssl" : {

"running" : "OpenSSL 1.0.2g  1 Mar 2016",

"compiled" : "OpenSSL 1.0.2g  1 Mar 2016"

},

"buildEnvironment" : {

"distmod" : "",

"distarch" : "x86_64",

"cc" : "cc: cc (Ubuntu 7.1.0-13ubuntu1) 7.1.0",

"ccflags" : "-fno-omit-frame-pointer -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Wno-nonnull-compare -Wno-error=c++1z-compat -Wno-error=noexcept-type -Wno-error=format-truncation -Wno-error=int-in-bool-context -Wno-overflow -Winvalid-pch -Werror -O2 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-missing-braces -fstack-protector-strong -fno-builtin-memcmp",

"cxx" : "g++: g++ (Ubuntu 7.1.0-13ubuntu1) 7.1.0",

"cxxflags" : "-g -O2 -fdebug-prefix-map=/build/mongodb-5gk9fl/mongodb-3.4.7=. -fstack-protector-strong -Wformat -Werror=format-security -Woverloaded-virtual -Wno-maybe-uninitialized -std=c++11",

"linkflags" : "-Wl,-Bsymbolic-functions -Wl,-z,relro -pthread -Wl,-z,now -rdynamic -Wl,--fatal-warnings -fstack-protector-strong -fuse-ld=gold -Wl,--build-id -Wl,-z,noexecstack -Wl,--warn-execstack -Wl,-z,relro",

"target_arch" : "x86_64",

"target_os" : "linux"

},

"bits" : 64,

"debug" : false,

"maxBsonObjectSize" : 16777216,

"storageEngines" : [

"devnull",

"ephemeralForTest",

"mmapv1",

"wiredTiger"

],

"ok" : 1

}

 

2 collStats: 返回指定集合的统计信息,包括数据大小,已分配的存储空间和索引大小

> db.runCommand({"collStats":"maple"})

{

"ns" : "maple.maple",

"size" : 234,

"count" : 4,

"avgObjSize" : 58,

"storageSize" : 36864,

"capped" : false,

"wiredTiger" : {

"metadata" : {

"formatVersion" : 1

},

 

3 distinct:列出指定集合中满足查询条件的文档的指定键的所有不同值

> db.runCommand({"distinct":"maple","key":"name"})

{ "values" : [ "zhanghongfeng_maple" ], "ok" : 1 }

 

4 drop和dropDatabase: 删除集合的所有数据和当前数据库的所有数据

5 getlastError: 查看对本集合执行的最后一次操作的错误信息或者其他状态信息。

6 isMaster: 检查本服务器是主服务器还是从服务器

> db.runCommand({"isMaster":1})

{

"ismaster" : true,

"maxBsonObjectSize" : 16777216,

"maxMessageSizeBytes" : 48000000,

"maxWriteBatchSize" : 1000,

"localTime" : ISODate("2017-12-27T13:45:21.228Z"),

"maxWireVersion" : 5,

"minWireVersion" : 0,

"readOnly" : false,

"ok" : 1

}

7 Listcommands: 返回所有可以在服务器上运行的命令

8 listDatabases:列出服务器上所有的数据库

9 ping: 检测服务器的链接是否正常

> db.runCommand({"ping":1})

{ "ok" : 1 }

10 

 

固定集合:

顾名思义,固定集合就是能够将集合的大小以及文档数进行固定的集合。固定集合的创建方法是用createCollection。如下所示,size代表集合的大小,max代表最大的文档个数

> db.createCollection("fixedcollection",{capped:true,size:1000,max:2})

{ "ok" : 1 }

插入2个文档

>db.fixedcollection.insert({"name":"zhanghongfeng","age":33})

> db.fixedcollection.insert({"name":"maple","age":32})

显示插入的2个文档

> db.fixedcollection.find()

{ "_id" : ObjectId("5a43a73ba889535e61dc29a8"), "name" : "zhanghongfeng", "age" : 33 }

{ "_id" : ObjectId("5a43a77ba889535e61dc29a9"), "name" : "maple", "age" : 32 }

再次插入一个文档

> db.fixedcollection.insert({"name":"zhf","age":32})

WriteResult({ "nInserted" : 1 })

通过查询可以看到插入一个文档后,最早插入的文档name:zhanghongfeng被替换掉了。这是因为我们在创建固定集合指定了最大文档个数为2个。因此新插入的文档会替换之前的文档,替换方法是替换最早建立的文档。

> db.fixedcollection.find()

{ "_id" : ObjectId("5a43a77ba889535e61dc29a9"), "name" : "maple", "age" : 32 }

{ "_id" : ObjectId("5a43a78ca889535e61dc29aa"), "name" : "zhf", "age" : 32 }

固定集合的排列方式和环形队列一样,通过指定查询的顺序来查找,$natural:-1按照文档的插入时间从晚到早的顺序,也就是从队列的末尾开始查起。$natural:1是从队列的对头开始查起

> db.fixedcollection.find().sort({"$natural":-1})

{ "_id" : ObjectId("5a43a78ca889535e61dc29aa"), "name" : "zhf", "age" : 32 }

{ "_id" : ObjectId("5a43a77ba889535e61dc29a9"), "name" : "maple", "age" : 32 }

> db.fixedcollection.find().sort({"$natural":1})

{ "_id" : ObjectId("5a43a77ba889535e61dc29a9"), "name" : "maple", "age" : 32 }

{ "_id" : ObjectId("5a43a78ca889535e61dc29aa"), "name" : "zhf", "age" : 32 }

mongodb学习之:数据库命令以及固定集合

标签:方式   最大的   版本   target   一个   信息   cat   操作系统   mongo   

小编还为您整理了以下内容,可能对您也有帮助:

如何在MongoDB中建立新数据库和集合

由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓ldquo;数据库rdquo;的概念,但不用担心,当你第

创建Mongodb数据库

由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓“数据库”的概念,但不用担心,当你第一次新增数据时,mongodb就会以collection集合的形式进行保存和新建,而不需要你手工去新建立。下面是例子:

1)列出当前的数据库

MongoDB shell version: 1.8.1

connecting to: test

> show dbs -

admin 0.03125GB

local (empty)

可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。

2) 定义新的数据库名

我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。

>use mkyongdb

switched to db mkyongdb

> show dbs

admin 0.03125GB

local (empty)

注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。

3)保存数据

定义一个collection,名为“users”,然后插入数据,如下:

> db.users.save( {username:"mkyong"} )

> db.users.find()

{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }

> show dbs -

admin 0.03125GB

local (empty)

mkyongdb 0.03125GB

可以看到,用db.users.find()可以找出已插入的数据。这个时候,,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。

mongodb固定集合有什么作用

在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(Binary JSON )。

BSON是一个轻量级的二进制数据格式。

MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。

当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端的返回结果也是编码为BSON格式再放回给Client端的。

mongodb数据库怎么使用

MongoDB是由10gen团队开发的基于分布式存储的开源数据库系统,使用C++编写。MongoDB作为一个文档型数据库,其中数据以键值对的方式来存储。

下面我们来看下MogoDB的基本使用。

1、连接MongoDB数据库

使用如下命令来连接MongoDB数据库

mongo

图1 连接MongoDB数据库

2、查看目前所使用的数据库。

在MongoDB中,想查看使用的是哪个数据库,可以使用如下命令来查看。

db

图2 查看所使用的数据库

3、查看有哪些数据库。

在MongoDB中存在着许多个数据库,对于有哪些数据库,可以使用如下命令来查看。

show db

图3 查看MongoDB中所有的数据库

4、创建数据库。

现阶段所存在的数据库如果不能满足要求,可以使用如下命令来创建新的数据库。

use database_name

其中database_name则代表所要创建的数据库名字,下面将演示创建一个名为offcn的数据库。

use offcn

图4 创建offcn数据库

5、删除数据库

当数据库没有作用时,可以将数据库删除从而释放所占用的空间资源。使用如下命令来进行对数据库进行删除,在删除前应该先选中所要删除的数据库。

use offcn

db.dropDatabase()

图5 删除数据库

                                                          

mongodb数据库怎么使用

MongoDB是由10gen团队开发的基于分布式存储的开源数据库系统,使用C++编写。MongoDB作为一个文档型数据库,其中数据以键值对的方式来存储。

下面我们来看下MogoDB的基本使用。

1、连接MongoDB数据库

使用如下命令来连接MongoDB数据库

mongo

图1 连接MongoDB数据库

2、查看目前所使用的数据库。

在MongoDB中,想查看使用的是哪个数据库,可以使用如下命令来查看。

db

图2 查看所使用的数据库

3、查看有哪些数据库。

在MongoDB中存在着许多个数据库,对于有哪些数据库,可以使用如下命令来查看。

show db

图3 查看MongoDB中所有的数据库

4、创建数据库。

现阶段所存在的数据库如果不能满足要求,可以使用如下命令来创建新的数据库。

use database_name

其中database_name则代表所要创建的数据库名字,下面将演示创建一个名为offcn的数据库。

use offcn

图4 创建offcn数据库

5、删除数据库

当数据库没有作用时,可以将数据库删除从而释放所占用的空间资源。使用如下命令来进行对数据库进行删除,在删除前应该先选中所要删除的数据库。

use offcn

db.dropDatabase()

图5 删除数据库

                                                          

MongoDB入门实操《一》

什么是MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

如何搭建MongoDB服务

step1: docker pull mongo

step2: docker run -d --name mongotest -p 27017:27017 mongo --auth (推荐)

或者: docker run -d --name mongotest -p 27017:27017 mongo

备注:--auth 表示需要密码才可以访问容器服务

无--auth 可以直接访问

step3: 进入容器 docker exec -it mongotest bash 或者 通过dashboard 进入(推荐)

Mongo的常规使用

在容器里面操作使用Mongo数据库:

总结:今天的文章主要介绍了什么是Mongo DB, Mongo DB服务的构建及Mongo的一些基础操作命令,如创建用户,用户授权,创建数据,显示数据,创建集合,显示集合,集合数据查询,集合删除等(并对比着mysql命令进行了解释),希望对新手有帮助。

MongoDB怎样添加和查询集合数据

MongoDB虽然也是一种数据库,不过它的数据是以键值对格式保存在集合里面的。今天咪咪我就来讲解一下MongoDB数据库怎样添加数据和查询数据。

首先,启动MongoDB数据库(不会的可参考我的其他指南,这里不多说),然后再连接MongoDB数据库。如图,使用 mongo命令就可以连接MongoDB数据库了。

如图,提示connecting to……,说明连接成功了。

接着使用use 数据库名来打开或者新建数据库。如果数据库存在,就会打开对应的数据库,如果数据库不存在,则会创建一个新的数据库并且打开数据库。

执行命令之后,就会出现这个提示,说明数据库打开了,并且现在开始使用这个数据库。

如图,通过db.集合名.insert()就可以往集合中插入数据,集合名可以自己定义,如果集合不存在,则创建新的集合,然后插入数据,如果集合存在,则打开集合并插入数据。

执行命令之后,提示“nInserted……”说明插入数据成功。

之前也说过,MongoDB数据库里面的数据是键值对形式,所以如果想要插入多条数据,可以这样写,也就是键值对之间用逗号隔开。

如果想要查询数据,则可以使用db.集合名.find()语句来查询。如果想要查询a集合里面的数据则用db.a.find()来查询。注意,find()表示查询全部的数据。

执行语句之后,集合中所有的数据都会显示出来。

如果想要查询出特定的数据,则可以在find里面添加键值对作为条件。比如我要查询name为mimi的数据则可以这样写。

执行语句之后,就可以查询到对应的数据了。集合中包含有name:mimi的数据只有一条,所以就显示一条。到此,MongoDB添加和查询集合数据的方法就分享完了。

显示全文