mongodb


原文链接: mongodb


##selector
类似于SQL语句中的where 。选择器是一个JSON对象,最简单的就是{}匹配所有文档。

  • {field:value} 用来查找field值为 value的文档。
  • {field1:value1,field2:value2} 相当于and
  • 还可以使用$lt,$lte,$gt,$gte,$ne 用来处理小于、小于等于、大于、大于等于和不等于操作。例如:
    {field1:value1,field2:{$gt:100}}
  • $exists 用来匹配字段是否存在
  • $in 用来匹配查询文档在传入的数组参数中是否存在匹配值,例如:{field:{$in:['apple','orange']}}- 如果想用OR而不是AND 来处理选择条件可以使用$or,再给它一个我们要匹配的数组。例如:{field1:value1,$or:[{field2:value2},{field3:value3}]}

##find
###projection(投影)
可选参数,是要检索或排除的字段列表。例如:
find({},{field:1})

默认情况下,_id 总是返回。可以显示的排除,如:{_id:0}

除了_id 字段,不能把检索和排除混用。

###排序
find().sort({field1:1,field2:-1})
1表示升序,2表示降序

###分页
通过limit和skip实现。例如:

find().sort({field:1}).limit(2).skip(1)

###计数
find().count()
##create

##update

  • 覆盖
    update(selector,{field1:value1,field2:value2})
  • $set
    update(selector,{$set:{field1:value1}})
  • $inc
  • $push

###upsert
在文档中找到匹配值时更新它,无匹配值时插入新值。使用方法就是在update时,写入第三个参数{upsert:true}
例如:
update(selector,{field1:value1},{upsert:true})

###批量更新
update默认只更新单个文档。使用multi选项。例如:
update(selector,{field1:value1},{multi:true})
##delete

参考链接

`