show dbs 查看数据库
show collections 查看集合
db.createCollectin 创建集合
db.collection.inset() 插入数据
//ordered:true表示顺序插入,ordered:false无序插入
info = [
{uid:11,name:"林华章",position:"php engineer",age:"20"},
{uid:12,name:"张梦雪",position:"web engineer"}
]
db.colleagues.insert(info,{ordered: false})
或
db.colleagues.insert([
{uid:11,name:"林华章",position:"php engineer",age:"20"},
{uid:12,name:"张梦雪",position:"web engineer"}
],
{ordered: false}
)
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
db.colleagues.find()
{ "_id" : ObjectId("5bc416339dc6d604d715a0d4"), "name" : "陈莎", "age2" : 23 }
{ "_id" : ObjectId("5bc416339dc6d604d715a0d3"), "user_id" : 2, "name" : "侯4", "position" : "web engineer", "age" : 15, "real_name" : "侯4" }
{ "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈莎", "age" : 23 }
{ "_id" : ObjectId("5bc43d2150a837720e2c03b0"), "uid" : 11, "name" : "林华章", "position" : "php engineer", "age" : "20" }
{ "_id" : ObjectId("5bc43d2150a837720e2c03b1"), "uid" : 12, "name" : "张梦雪", "position" : "web engineer" }
db.collection.insertOne({ item: "card", qty: 15 }) 插入一条
db.collection.find() 查找数据
db.colleagues.find({"name":"林章"})//查询条件为name=林章
db.colleagues.find({},{"name":1,"age":1,"_id":0}) 只查询name和age字段,_id则不显示
db.collection.findOne() 查询单条
db.collection.update() 修改数据
db.colleagues.update({"name":"陈发6"},{"name":"陈发","age2":23},{multi:true,upsert:false})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
//如果条件不成立,则新增一条数据,如果需要不新增则可设置upsert:false
//multi默认为true,表示满足条件就全部修改,false表示满足条件只修改一条
db.collection.remove 删除数据
db.colleagues.remove({"name":"李刚"})
WriteResult({ "nRemoved" : 1 })
添加索引:
//1是按升序创建 -1是按降序创建
db.colleagues.ensureIndex({"name":1,uid:-1})
//创建索引并命名
db.user.ensureIndex({"name":1},{"name":"索引名字"});
//重建索引
db.sites.reIndex()
//查看索引
db.system.indexes.find()//查看所有索引信息
db.coll.totalIndexSize查看集合索引的总大小
db.coll.getIndexes()方法查看集合的所有索引
//删除索引
db.collection_name.dropIndexes("INDEX-NAME");
db.collection_name.dropIndexes()//删除集合中的所有索引
修改器和查询条件:
$set 如果一个键不存在,则创建它
$inc 增加一个键的值,如果不存在,则创建它
$push 向已有数组添加一个元素,没有就创建一个
$upsert 如果没有符合条件的文档,以此为条件创建一个新的文档
$ 数组定位的下标
$lt <
$lte <=
$gt >
$gte >=
$ne !=
$in in查询
$or or查询
$nin 与$in相反
$not 元条件句,可以用于任何条件之上
db.students.find("age":{"$gte":18,"$lte":30})//查询年龄在18-30的数据
db.colleagues.find({"age":{"$in":[15,20]}},{"_id":0})//查询年龄等于15和20的数据
db.colleagues.find({$or:[{"uid":11},{"age":15}]})//满足多个条件中的一个
db.food.find({number:{$all:[4,8]}})//查询food集合中所有number字段包含4,8的数据
{ "_id" : ObjectId("5bc5b407d87ae529fa3aee72"), "number" : [ 4, 5, 8, 6 ] }
{ "_id" : ObjectId("5bc5b47bd87ae529fa3aee73"), "number" : [ 4, 8, 6, 2 ] }
db.food.find({mumber:{$size:3}})//查询集合中数组大小为3的记录
db.inventory.find( { price: { $not: { $gt: 1.99 } } } )//$gt再取反
$where查询:
> db.colleagues.find()
{ "_id" : ObjectId("5bc416339dc6d604d715a0d4"), "name" : "陈发", "age2" : 23 }
{ "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈发", "age" : 23 }
{ "_id" : ObjectId("5bc43d2150a837720e2c03b0"), "uid" : 11, "name" : "林章", "position" : "php engineer", "age" : "20" }
{ "_id" : ObjectId("5bc43d2150a837720e2c03b1"), "uid" : 12, "name" : "张雪", "position" : "web engineer" }
> db.colleagues.find({$where:function(){
... if(this.age>20){
... return true;
... }else{
... return false;
... }
... }})
{ "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈发", "age" : 23 }
mongodb提供同步和异步两种形式保存数据,如果一定要等到数据成功写入再返回,那么需要开启getlastError.
2.6之后版本默认开启了,不需要设置
分页:
db.colleagues.find().sort({'date':-1}).skip(($page-1)*$limit).limit(100);
网友评论