collention设置主键
collection.create_index('goods_id', unique=True)
ubuntu直接安装mongodb
https://www.cnblogs.com/shileima/p/7823434.html
sudo apt-get install mongodb
装好以后应该会自动运行mongod程序,通过"pgrep mongo -l "查看进程是否已经启动
启动/关闭服务
sudo service mongodb start/stop
查看状态
systemctl status mongodb
后台启动mongodb
建立两文件夹 /data/db(这是mongo默认存储路径) /data/log
mongod -auth --logpath /data/log --bind_ip_all --fork
(tmd找不到配置文件)
使用Studio 3T时得注意连接的加密方式
collection名字后面带个’\n’,会出问题,得注意⚠️
卸载MongoDB
https://blog.csdn.net/zqx1205/article/details/75314266
yum install mongodb-org (按TAB)
systemctl start mongod
https://blog.csdn.net/qq_383698639/article/details/79446333
查看selinux状态:
/usr/sbin/sestatus
Docker MongoDB 部署
https://www.jianshu.com/p/6fdb2bcb4b43
MongoDB有两种启动方式,一是默认启动,二是指定配置文件启动。
docker run -p 27017:27017 -v /home/xj.chen/MyApplications/mongodb_file:/data/db --name docker_mongodb -d mongo
docker run -p 27017:27017 -v /home/xj.chen/MyApplications/mongodb_file:/data/db --name docker_mongodb -d mongo --auth
docker start xxxxx
db.createUser({user: 'root', pwd: 'xxxxxx', roles: [{role: 'dbOwner', db: 'mytest'}] })
docker exec -it docker_mongodb mongo(admin) # 不打admin 进去需要use admin
密码启动
docker run -p 27017:27017 -v /root/mongodb_file:/data/db --name docker_mongodb -d mongo --auth
show dbs(没数据)
db.createUser({user:"root",pwd:"xxxxxx",roles:["root"]})
use admin
db.auth("root","xxxxxx")
show dbs(有数据了)
docker mongo 备份
备份指定数据库,但备份文件在容器里
docker exec -it docker_mongodb_no_auth mongodump --db Lazada_FBL_shop_db --out /mongo_backup
备份所有数据库 (不加-d/--db参数会备份所有数据库)
docker exec -it docker_mongodb_no_auth mongodump --out /mongo_backup
docker 进入容器内部
sudo docker exec -it docker_mongodb_no_auth /bin/bash
压缩文件夹
tar -zcvf mongo_backup.tar.gz /mongo_backup/
回到宿主机
exit
把容器里的文件拷贝出来
docker cp docker_mongodb_no_auth:/mongo_backup.tar.gz `pwd`
`pwd`为当前所在宿主机目录
解压
tar -zxvf mongo_backup.tar.gz
恢复数据
mongorestore -h 127.0.0.1:27017 -d mongo_backup dir
windows下MongoDB可能缺失很多工具,需单独下载。
MongoDB Database Tools,下载后放到bin文件夹。
Mongo设置唯一字段
https://www.jianshu.com/p/adedee065c28
为指定字段创建唯一值索引
在MongoDB中_id字段默认时唯一值索引字段,它永远不会重复,我其实们也可以添加其他字段为唯一值索引字段,创建代码如下:
# 单个字段唯一索引
db.collection.createIndex({name:1},{unique:true}
如需要多个字段联合唯一索引,可参照如下方式:
# 多个字段联合索引示例
db.collection.createIndex({name_one:1,name_two:1},{unique:true})
正则查询
{url: {$regex: 'https://www.baidu.*'}}