一、安装后常见问题:

当我们在mongodb中创建生产环境后,常见的问题有以下二个:

(1)当我们关闭虚拟机或者主机时并没有关掉生产环境,此时就会产生错误,经常如下图:

about to fork child process, waiting until server is ready for connections. 
forked process: 11396 
ERROR: child process failed, exited with error number 48 To see additional information in this output, start without the "--fork" option.

这是由于mongodb产生了一个锁文件,我们需要到我们配置的存放数据库的地方删除mongodb.lock文件,然后再找到我们创建mongod的运行指令地方后添加--repair进行运行。

具体操作流程如下:

(1)使用ps指令找到我们存放mongod指令的位置(这对于采用命令行安装的方式较为有效,其他凡是可以自己找自己存放目录)

mongodb报错1067 mongodb fork报错_mongodb

(找mongod.lock同样方法,把-name后面参数进行修改即可)

 (2)删掉mongod.lock后,在可执行命令mongod处,执行:

sudo ./mongod --dbpath=/data/db --logpath=/data/log/mongo.log --logappend --fork --repair

2.第二个问题是当你在后台启动了一个mongod的生产环境后,如果再启动一个就会有该问题:

about to fork child process, waiting until server is ready for connections.
forked process: 8440
ERROR: child process failed, exited with error number 100
To see additional information in this output, start without the "--fork" option.

此时可以查看进程来确定是否有:

ps -aux | grep mongod

二、mongodb客户端的启动与关闭及数据库查询

开启mongodb:

mongo

关闭mongodb(ctrl-c)

exit

关闭mongodb生产环境:

use admin
db.shutDownserver()

查询数据库:

show databases
简写可以为:
show dbs

使用数据库:

use 代码库名字

查询库中存的集合,该集合其实可以理解为多条字典数据的集合

show collections

我们想要使用数据库时,只需要先use 你自己想要定义的数据库,然后在其中创建一个集合或者插入一条数据就默认创建成功了,插入数据其实也创建了一个集合:

mongodb报错1067 mongodb fork报错_linux_02

 

mongodb报错1067 mongodb fork报错_mongodb报错1067_03

 

mongodb报错1067 mongodb fork报错_mongodb报错1067_04

方框选中地区为集合

三、mongodb的增删改查

(1)增,采用集合加insert的方式增加:

mongodb报错1067 mongodb fork报错_mongodb报错1067_04

(2)删除

db.happy.remove({gender:"boy"})

(3)改,采用update进行操作:

db.happy.update({age:18},{$set:{gender:false}},{multi:true})     #multi表示修改多条数据
db.happy.update({age:18},{$set:{gender:false}},{upsert:true})    #upsert表示有则改没则加

(4)查,采用$字符搭配ge,le,gte,lte,ne (学过django的同学,对于filter()里qt等字符绝对不陌生):

db.happy.find({age:{"$gt":18}})
db.happy.find({age:{"$gte":18}})

采用$and或$or进行多条件查询: 

db.happy.find({"$and":[{age:{$gt:18}},{gender:true}]})

四、其他操作

1.分页操作

db.happy.find().skip(2).limit(2)

 2.去重

db.happy.distinct('name')

3个数,投影和排序

db.happy.find().count()  #count()中也可以加条件
db.happy.find({},{"name";1})       #前一个为查询限制,后一个为要查询的字段
db.happy.find().sort({age:1})       # 1为升序, -1为降序