1、更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
$set:是mongoDB的一种修改器,还有其他的修改器,如$inc,$push,$unset...
upsert:参数表示如果记录不存在,则插入,默认为falsemulti:表示是否更新多条文档,默认false
2、查询文档
db.c1.find(
{"name":"gaoyi"},{"age":1}//第一个{}表示查询条件,第二个{}表示要显示的字段
).pretty()
{"name":"gaoyi"},{"age":1}//第一个{}表示查询条件,第二个{}表示要显示的字段
).pretty()
---数组查询:
db.c1.find(
{"tags":"mongodb"}
)
结果:
{"_id" : ObjectId("58e9f16346e1a8b70d87cd65"),
"by" : "菜鸟教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"likes" : 100.0,
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"title" : "MongoDB new",
"url" : "http://www.runoob.com"
}
---游标的使用
在mongodb中可以使用类似Oracle中游标的概念,
limit(m)函数:限制取m个文档
var curor = db.c1.find(
{"name":"zhangsan"}
).limit(2)
skip(n)函数:从第n+1个文档开始
尽量避免skip大量的行,这会很慢
3、索引
创建索引:
MongoDB使用 ensureIndex() 方法来创建索引。
查看有哪些索引:
db.system.indexs.find();
删除索引
db.runCommond({"dropIndexs":"c1","index":"index_name"});
4、聚合框架
cousor = db.c1.aggregate([
{$group:{_id:'$product_id',
count:{$sum:1} }}
]).next();
说明:1、输入文档的字段,用$指定
2、输出文档的如,count
3、MongoDB2.6后聚合管道操作之后的结果是结果集(游标)。