1、连接MongoDB:
标准格式:
建立远程连接:mongodb://[username:password@]host1[:port1][,hostN[:portN]]][/[database][?options]]
要连接复制集,需指定多个主机地址
/database 可指定连接到的数据库,不知道默认为test库
建立本地连接:找到MongoDB安装目录 ./mongo
2、数据库
创建use 数据库名 (有则切换到该数据库,无则创建)
删除db.dropDatabase()大小写敏感,注意大写部分
查询
查看当前所有数据库 show dbs
查看当前使用数据库 db
使用 use 数据库名
3、集合
创建db.createCollection(集合名称,可选参数)
可选参数可指定内存大小和索引选项:
capped 布尔值,是否设置固定大小,设置后超出将自动覆盖较早时间的内容
size 数值,单位KB,固定集合指定最大值当capped为true时,此值必填
max 数值,指定固定集合中包含文档的最大数量
eg:db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
删除db.collection名.drop()
查询查看所有集合 show collections
4、文档
创建
db.collection名.insert(文档内容),若插入的数据为主键且已存在,会抛异常并不保存插入的数据
文档内容:需是和json类似的格式,{}括起,内容为key-value的形式
db.collection.save(文档内容),若插入的数据为主键且已存在,则更新数据,该方法新版本废弃,可用db.collection.replaceOne()代替
db.collection.insertOne()向集合插入一个文档,3.2版本后支持
db.collection.insertMany()向集合插入多个文档 3.2版本后支持
2.删除
删除指定数据
db.collection.remove(
删除的文档条件,
{
justOne:为true只删除一个文档,默认为flase删除所有能匹配上指定内容的文档
writeConcern:异常级别
}
)
删除所有数据
db.collection.remove({})
3.修改
db.cllection.update(
{待更新的字段}, 相当于mysql的where字段
{$set:{更新为的内容}}, 相当于mysql的set字段
{
upsert:如果不存在需要update的记录,是否插入,默认flase
multi:是否更新所有符合条件的内容,默认flase
writeConcern:抛出异常的级别
}
)
指定文档id更新
db.collection.save(
{文档内容} 指定文档更新时 ,可指定"_id":ObjectId("XX"),不指定id就是直接保存
)
4.查询
db.collection.find()
ffind()相当于mysql where语句,find为空相当于是查全部
指定条件查询:
db.collection.find({key:{$lt:50}}).pretty() 相当于where key<50
db.collection.find({key:{$lte:50}}).pretty() 相当于where key<=50
db.collection.find({key:{$gt:50}}).pretty() 相当于where key>50
db.collection.find({key:{$gte:50}}).pretty() where key>=50
db.collection.find({key:{$ne:50}}).pretty() where key !=50
db.collection.find({key:{$lt:50,$gt:80}}) where key>50 and key<80
and条件:
db.collection.find({条件1},{条件2})
or条件:
db.collection.find({$or:[{条件1},{条件2}]})
指定输出某些字段:
db.collection.find({查询条件},{"指定key":1}) 只展示指定key,只能全配0,或全配1,也可在inclusion模式指定_id:0
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键
模糊匹配查询:
db.collection.find({key:/中/}) 包含“中”
db.collection.find({key:/^中/}) 以“中”开头
db.collection.find({key:/中$/}) 以“中”结尾
按文档内容字段值类型查询
db.col.find({"title" : {$type : 2}})等同于db.col.find({"title" : {$type : 'string'}})