1.https://www.mongodb.com/try/download/community
2.tar -zxvf mongodb-linux-x86_64-rhel80-5.0.9.tgz
3.mkdir log mkdir data
4.vim /etc/profile
PATH=/opt/mongodb-linux-x86_64-rhel80-5.0.9/bin:$PATH
source /etc/profile
5.vim mongod.conf
例子
systemLog:
quiet: false # MongoDB试图最大程度精简日志数量,以安静模式运行,不建议生产环境打开
destination: file # 日志输出的目的地,如果值是file,即文件类型,则必须指定path的值
path: /var/log/mongodb/mongod.log # 日志的路径,该值即默认路径
logAppend: true # 重启MongoDB实例时,是否在同一个文件追加日志,如果为false,则备份原有日志,同时新增日志文件
verbosity: 2 # 日志的详细程度,范围0-5,默认是0,即最简单日志;最高是5,最详细日志。
storage:
dbPath: /var/lib/mongo # 数据存储位置,该值即默认值,可手动配置
journal:
enabled: true # 是否启用持久性日志存储,64位系统默认true,32位默认false
net:
port: 27017 # MongoDB监听的tcp端口,默认是27017,建议修改
bindIp: 127.0.0.1 # 允许链接的IP地址,如需远程连接,应该改为对应IP,或改为0.0.0.0(::,0.0.0.0)以允许所有IPv4(IPv6)链接
storage:
dbPath: "/opt/mongodb-linux-x86_64-rhel80-5.0.9/data"
systemLog:
destination: file path: "/opt/mongodb-linux-x86_64-rhel80-5.0.9/mongod.log"
logAppend: true
net:
port: 27017
bindIpAll: true
processManagement:
fork: true
6启动
mongod --config /opt/mongodb-linux-x86_64-rhel80-5.0.9/mongodb.conf
mongod --config /opt/mongodb-linux-x86_64-rhel80-5.0.9/mongodb.conf --shutdown
shell登录 mongo或mongodb://localhost
带密码带数据库 mongodb://user:pass@localhost/shujuku
admin: 要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
db.COLLECTION_NAME.insert(document) 如果 _id 主键存在则更新数据,如果不存在就插入数据
(可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替)
或
db.COLLECTION_NAME.save(document)
db.collection.update(
,
)
db.col.update({‘title’:‘MongoDB’},{$set:{‘title’:‘M’}},false,true)
false没有匹配是否插入
true是否更新全部匹配,默认只更新一个
db.col.remove({‘title’:‘MongoDB’}) 删除title=MongoDB
db.collection.find(query, projection)
等于 {<key>:<value>} db.col.find({"by":"1"}).pretty() where by = '1'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
集合查询相当于联表查
db.collection.aggregate([
{
$lookup:
{
from: "连接的集合名",
localField: "_id",
foreignField: "_id",
as: "result 结果别名"
},
{ $match: { "result.0": { "$exists": false } } }
}
])
and 查询
{$and:[{"b":"my"},{"a":"a"}]}
or 查询
{$or:[{"a":{"$ne" : "3"}}] }
or 加 and 查询
{$or:
[
{$and:[{"createBy":"wangsen1"},{"flowflag":"3"}]},{"flowflag":{"$ne" : "3"}}
]
}
包含某字段的模糊查询
db.col.find({"a":{ $regex:/XXX/}})
以某字段为开头的文档
db.col.find({"a":{ $regex:/^XXX/}})
以某字段为结尾的文档
db.col.find({"a":{ $regex:/XXX$/}})
查询忽略大小写
db.col.find({"a":{ $regex:/XXX/i}})
imit与Skip方法,sort() 方法
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
1 为升序排列,而 -1 是用于降序排列
db.COLLECTION_NAME.find().sort({KEY:1})
索引
db.col.createIndex({“title”:1})
1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1
db.collection.distinct(‘_id’)