windows下:
1、安装为windows服务(--replSet rs0:副本集名称,其他机器也设置成该名称):
C:\Program Files\MongoDB\Server\3.4\bin>mongod.exe --bind_ip 192.168.2.117 --logpath "E:\mongodata\dbConf\mongodb.log" --logappend --dbpath "E:\mongodata\db" --port 27107 --serviceName "MongoDbService" --serviceDisplayName "MongoDbService" --replSet rs0 --install
连接数据库:
bin目录下:mongo --host 192.168.2.117 --port 27107
命令:
db----------显示当前所在的数据库
use dbname---------------切换到指定的数据库(不存在的话会自动创建)
show dbs------------显示所有的数据库(新创建的数据库要插入数据才会显示)
show collections -----------显示当前数据库下的所有集合
db.dropDatabase() ------------删除当前数据库
db.collection.drop()---------删除集合
插入数据:
db.users.insert({"_id": ObjectId("53402597d852426020000002"), "contact": "987654321","dob": "01-01-1991","gender": "M","name": "Tom Benzamin","user_name":"tombenzamin"})
users---集合名称(没有会自动创建)
db.users.find().pretty()-----------查找所有文档
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})-----------更新文档
db.col.remove({'title':'MongoDB 教程'})-----------删除
db.col.remove({'title':'MongoDB 教程'},1)-----------删除1条
查询
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<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.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()------------and
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()-------or
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()------and,or联合使用
根据数据类型查找:
db.col.find({"title" : {$type : 2}})-----------2表示String类型
类型 数字 备注
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined 6 已废弃。
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255 Query with -1.
Max key 127
db.middle.find().limit(1)-------------只要一条
db.middle.find().limit(1).skip(1)-------------只要一条,并且跳过第一条(显示第二条)
获取数量
db.getCollection('test_collection').count()
排序
db.col.find({},{"title":1,_id:0}).sort({"likes":-1}) -----------降序(-1:降序,1:升序)
创建索引
db.col.ensureIndex({"title":1}) -------------title是字段(1:升序创建索引,-1:降序创建索引)
副本集:
Mongo客户端使用命令rs.initiate()来启动一个新的副本集。
我们可以使用rs.conf()来查看副本集的配置
查看副本集状态使用
rs.status() 命令
rs.add(HOST_NAME:PORT)/rs.add("mongod1.net:27017")---------将其添加到副本集中
db.isMaster():当前节点是否是主节点
备份:
C:\Program Files\MongoDB\Server\3.4\bin>mongodump -h 192.168.2.117:27107 -d students -o d:\mongobak (主机名,端口号,数据库,备份目录)
还原:
mongorestore -h <hostname><:port> -d dbname <path>(path:备份目录)
ObjectId:
是一个12字节 BSON 类型数据
前4个字节表示时间戳
接下来的3个字节是机器标识码
紧接的两个字节由进程id组成(PID)
最后三个字节是随机数。
ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()-----------文档创建的时间
new ObjectId().str ---------------转换字符串