基本crud
插入文件
单个文件的插入
db.collection.inster(
<document or array of document>,
{
orderad:<boolean>
}
)
- 说明
- document:要插入到集合的文件或文件数组
- ordered:版本2.6+默认为true
- 如果为真,按顺序插入,如有一个出错,将返回不处理剩下的文件
- 如果为false,无序插入,如有一个出错,会将剩下的执行完
- 注意
- 如果指定的集合(表)不存在,就会隐式创建
- mongo中的数字,默认是double,如果要存整型,必须要用函数NumberInt(整型数字),否则取出会有问题
- 插入当前日期使用new Date()
- 插入的数据没有指定_id,会自动生成
- 如果某个字段没有值,可以赋值为null,或者不写该字段
- 返回值(成功的情况)
WriteResult({ “nInserted” : 1 })
批量插入
db.collection.insterMany(
[<document 1>,<document 1>,<document 1>...]
{
orderad:<boolean>
}
)
- 插入时指定了_id,则主键就是该值
- 如果某条数据插入失败了,就会终止插入,但是已经插入成功的数据不会回滚
- 批量插入由于数据较多容易失败,可以使用try cath来进行一场捕捉
查询
db.collection.find(<query>,[projection])
- query:使用查询运算符指定选择筛选器,若要返回集合中的所有文档,省略
- projection:指定要返回的字段(投影).若返回所有字段,省略
- 举例
- 查询所有
db.collection.find() 或 db.collection.find({})
- 查询a=1的文档
db.collection.find({a:'1'})
- 投影查询(选择返回的字段,就等于不要select *),查询a和b,不查c出来
db.collection.find({},{a:1,b:1,c:0})
修改
- 语法
db.collection.update(query,update,options)
或
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi:<boolean>,
writeConcern:<document>,
collation:<document>,
arrayFilters:[<filterdocument1>,...],
hint: <document|string>
}
)
- 举例
- 修改整个文档(修改_id为1的记录,a的值改为1,但是除了a之外的值都会不见)
db.collection.update({_id:'1'},{a:NumberInt(1)})
- 修改文档中部分字段(修改_id为1的记录,a的值改为1,但是除了a之外的值都不变)
db.collection.update({_id:'1'},{$set:{a:NumberInt(1)}})
- 批量修改
默認只修改第一條數據 db.collection.update({userid:'1'},{$set:{a:NumberInt(1)}}) 修改所有復合條件的數據 db.collection.update({userid:'1'},{$set:{a:NumberInt(1)}},{multi:true})
- 列值增長的修改(在原來的值上增加或減少,正數就是增加,負數就是減少)
db.collection.update({_id:'1'},{$inc:{a:NumberInt(1)}})
刪除文檔
db.collection.remove(條件)
- 全部刪除
db.collection.remove({})
- 刪除_id為1的記錄
db.collection.remove({_id:'1'})