您的位置:首页 > 数据库 > Mongodb

mongoDB常用命令

2016-09-13 10:11 447 查看
db.person.find()
db.person.remove()
db.person.drop()//速度更快但不能指定限制条件
//定义方法
function f(n){
if(n<=2){
return 1
}else{
return f(n-2) + f(n-1)
}
}
f(4)
//替换操作
"wangzs , hello word!".replace("word","xxxxx");

person={"name":"wangzs2","age":27,"address":"xujingdong","date":new Date()};
db.person.insert(person);
db.person.findOne()
//更新
db.person.update({"name":"wangzs2"},{"$set":{"comments":[]}})
//插入的数据类型
db.person.insert({"a":"","b":null,"c":2,"d":3.12,"e":true,"f":NumberInt(8),"g":NumberLong(9),
"h":"hello","i":new Date(),"j":["1","2","3"],"k":{"name":"wangzs","age":"27"}})
//帮助命令
db.help()
db.person.help()
sh.help()
show dbs
show collections
show users
//查看函数实现代码,参数顺序
db.person.update
//批量插入
db.person.insertMany([{"name":"name1"},{"name":"name2"},{"name":"xxxx"}])//无法执行
db.person.insert({"name":"name1","age":25,"address":"上海"})
//把age的值加1
db.person.update({"name":"name1"},{"$inc":{"age":1}})
//更新
db.person.update({"name":"name1"},{"$set":{"books":"java"}})
db.person.update({"name":"name1"},{"$set":{"books":["mongodb","javascript","hello"]}})
//删除不要字段
db.person.update({"name":"name1"},{"$unset":{"books":1}})
//comments添加内容
db.person.update({"name":"wangzs"},{"$push":{"comments":{"星级":"*****","评论":"五星好评"}}})
db.person.update({"name":"name1"},{"$push":{"address":{"$each":[23,"88","youxiu"]}}})
//$addToSet避免插入重复地址
db.person.update({"name":"name1"},{"$addToSet":{"address":{"$each":[23,"youxiu","charu","hello"]}}})
db.person.insert({"todo":["A","B","C","A","A"]})
//删除数组中所有匹配的结果
db.person.update({},{"$pull":{"todo":"A"}})
//第三个参数ture,存在更新,如果不存在就创建
db.person.update({"name":"wangzs5"},{"$inc":{"age":3}},true)
//第4个参数true更新所有匹配的文档
db.person.update({"name":"wangzs"},{"$set":{"gift":"happy bitthday"}},false,true)

var person=db.person.find({"name" : "wangzs"})
person.name="wangss"
//包含_id更新,不包含_id保存
db.person.save(person)//运行有问题

//查找并且更新 只是1个
db.runCommand({"findAndModify":"person",
"query":{"name":"wangzs"},
"update":{"$set":{"address":"zhoukou"}}
}).value
//查找并且删除 只是1个
db.runCommand({"findAndModify":"person",
"query":{"name":"wangzs"},
"remove":true
}).value

//指定_id不显示,只显示name,address
db.person.find({},{"_id":0,"name":1,"address":1})
// 18<=age<=30
db.person.find({"age":{"$gte":18,"$lte":30}})
// name!=wangzs2
db.person.find({"name":{"$ne":"wangzs2"}})
// name in ("wangzs","wangzs3",123)
db.person.find({"name":{"$in":["wangzs","wangzs3",123]}})
// name not in ("wangzs","wangzs3",123)
db.person.find({"name":{"$nin":["wangzs","wangzs3",123]}})
// or
db.person.find({"$or":[{"age":30},{"name":{"$nin":["wangzs","wangzs3",123]}}]})
//返回parents=null和不包括返回parents字段的所有结果
db.person.find({"parents":null})
//返回包括parents字段但是该字段是null的结果 $exists:判断键值存在
db.person.find({"parents":{"$in":[null],"$exists":true}})
//正则表达式 模糊匹配*wangzs*
db.person.find({"name":/wangzs/})

db.person.insert({"name":["A","B","C"]})
db.person.insert({"name":["E","K","C"]})
db.person.insert({"name":["U","D","C","D","W"]})
//name数组包含A和C
db.person.find({"name":{"$all":["A","C"]}})
//name数组长度为3的结果
db.person.find({"name":{"$size":3}})
//name数组前2个位置
db.person.find({},{"name":{"$slice":2}})
//name数组后2个位置
db.person.find({},{"name":{"$slice":-2}})
//name数组后3-5位置
db.person.find({},{"name":{"$slice":[3,5]}})
db.person.insert({"name":"wangzs","address":[{"city":"shanghai","tel":"135"},{"city":"henan","tel":"888"}]})
//显示两条结果
db.person.find({"address.city":"shanghai","address.tel":"888"})
//elemMatch将限定条件进行分组
db.person.find({"address":{"$elemMatch":{"city":"shanghai","tel":"888"}}})
//遍历结果
var cursor=db.person.find()
while(cursor.hasNext){
obj = cursor.next()
print(obj)
}
var cursor=db.person.find()
cursor.forEach(function(x){
print(x.A+" - " +x.C)
})
//限制返回2条结果
db.person.find().limit(2)
//跳过前2条结果
db.person.find().skip(2)
//排序 1:升序 2:降序
db.person.find().sort({"A":1,"C":-1})
//查看所有数据库命令
db.listCommands()
//explain 显示执行查询过程中做的事情
db.person.find({"name":"name221"}).explain()
db.person.find({"name":"name221"}).limit(1).explain()
//name建立索引
db.person.ensureIndex({"name":1})
//name,age建立索引
db.person.ensureIndex({"name":1,"age":1})
//建立唯一索引
db.person.ensureIndex({"name":1},{"unique":true})
//删除索引
db.person.dropIndex({"name":1})
db.person.getIndexes() //无法执行
//查看索引创建的进度
db.currentOp()
//穿件唯一索引,重复的删除
db.person.ensureIndex({"name":1},{"unique":true,"dropDups":true}) //无法执行
//聚合函数
db.person.aggregate(
{"$match":{"name":"name5"}},// 对文档集合进行筛选
{"$project":{"name":1}}, // 选择需要投射的字段
{"$group":{"_id":"$name","count":{"$sum":1}}},
{"$sort":{"count":-1}},
{"$limit":5}
)
//按照多个字段分组
db.person.aggregate(
{"$group":{"_id":{"name":"$name","age":"$age"},"count":{"$sum":1}}},
{"$sort":{"count":-1}}
)
//分组后找到最大值最小值
db.person.aggregate(
{"$group":{"_id":"$name","lowage":{"$min":"$age"},"highage":{"$max":"$age"}}}
)
//把id重命名为userid,不显示_id,显示name
db.person.aggregate(
{"$project":{"userid":"$_id","_id":0,"name":1}}
)
db.person.insert({"name":"wangzs1","num1":12,"num2":5})
db.person.insert({"name":"wangzs2","num1":8,"num2":9})
//把num1和num2的值相加
db.person.aggregate(
{"$project":
{"result":
{"$add":["$num1","$num2"]}
}
}
)
db.person.insert({"name":"wangzs2","hireDate":new Date()})
db.person.insert({"name":"wangzs2","hireDate":new Date("2016/08/07")})
db.person.insert({"name":"wangzs2","hireDate":new Date("2016/05/07")})
//返回每个雇员入职的月份
db.person.aggregate(
{"$project":{"hiredIn":{"$month":"$hireDate"}}}
)
//返回员工在公司工作的月数
db.person.aggregate(
{"$project":{"workTime":
{"$subtract":[{"$month":new Date()},{"$month":"$hireDate"}]}
}}
)
db.person.insert({"name":"wangzs2","address":"henan"})
//取name前两位拼接邮箱号
db.person.aggregate({
"$project":
{"email":
{"$concat":[{"$substr":["$name",0,2]},".","$address",".","dongh.com"]}
}
})
db.person.count({"name":"wangzs2"})
//person集合中name的不同数量
db.person.runCommand({"distinct":"person","key":"name"})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb