mongodb使用总结

1.创建目录mongoDB

2.创建data目录,用来放数据文件
创建logs目录,用来放log日志
创建etc目录,用来放配置文件

3.在etc目录下创建mongo.conf文件,内容为
dbpath=/mongodb/data
logpath=/mongodb/logs/mongo.log
logappend=true
journal=true
quiet=true
port=27017

4.vim的退出
按esc然后shift+:(冒号)
wq退出w保存,q退出

5.在bin目录下,使用
mongodb -f /mongodb/etc/mongo.conf

6.更改指向,建立软连接
ln -s /mongodb/

ls -la查看所有软连接

mongod -f

如果报mongod: commond not found
因为mongod没有配置到全局变量内,所以无法找到
解决
export MONGO_PATH=/User/XXX/mongod
export PATH=$PATH:$MONGO_PATH/bin

在bin目录下输入Mongod -f /Uers/xxx/mongodb/etc/mongo.conf

在一个窗口开启连接,mongod -f /Users/xxx/mongodb/mongodb-osx-x86_64-3.4.7/bin
另外一个窗口输入mongo,查看连接情况

出现大于号成功,测试show dbs

授权方式启动Mongo
mongod -f /User/xxx/mongo/etc/mongod.conf --auth
加上--auth是授权方式

创建用户权限
db.createUser({user:"admin",pwd:"admin",roles:["root"]})
db.createUser({user:'admin',pwd:'admin',roles:[{role:'dbOwner', db: 'test'}])指定用户只有访问某一个数据库权限

db.auth("admin","admin")验证权限

控制台写入的格式如下:
db.createUser(
... {
... user:"test1",
... pwd: "test1",
... roles: [{ role: "readWrite", db: "test"}]
... }
... )


1.查看数据库
show dbs
2.创建数据库
ues dbname(此时数据库创建但是没有值是不会显示的)
3.创建集合(创建表)
db.createCollection("user")
db.users.insert({id:1, name: 'hello'})直接插入数据创建集合
4.查看集合
show collections
5.删除数据库
db.dropDatabase()选择完制定数据库,然后在执行此命令
6.删除集合
db.user.drop()
7.插入数据
db.user.insert({userId:101,userName:'jack',userAge:20,class:{name:'tm',num:10}})
8,显示所有数据
db.user.find()
db.user.find().pretty()格式化数据
db.user.findOne()查询第一条数据
9,修改数据
db.user.update({userName:'jack'},{$set:{userAge:30}})
10.更新子文档
db.user.update({'userName:'jack'},{$set:{'class.name':'test'}}) 'class.name'用引号包裹
11.带条件搜索
db.user.find(userAge:{$lt:40}) 小于某个值
db.user.find(userAge:{$gt:50}) 大于某个值
db.user.find(userAge:{$gte:20}) 大于等于某个值
12.删除表中数据
db.user.remove({userId:11})

13.导入文件
mongoimport -d db_demo -c users --file /user/xxx/xx
-d(代表连接数据库) 后面跟得是文档名
-c(连接集合) 后面跟的是集合名
--file 是导入文件的路径

14.node下链接数据库
//如果是带账号和密码,格式是mongodb://账号:密码@ip:端口/数据名称
mongoose.connect('mongodb://127.0.0.1:27017/dumall')

15.建表时,表要加s如goods
不然在写关联数据表时,需要在model中用第三个参数,如下面:
mongoose.model('Good', productSchema, 'good')
第三个参数是制定和哪张表关联

16.mongoose中排序和分页函数
Goods.find(params).skip(skip).limit(pageSize).sort({'salePrice': sort}).exec(function(err, doc){

})

原文地址:https://www.cnblogs.com/victory820/p/10042119.html