标签:mongodb
mongo官网 下载地址 http://www.mongodb.org/downloads
vue工具 下载 http://www.mongovue.com/downloads/
建一个文件夹,放解压后的mongo文件,在新建一个放 指定数据库
做一个变量,指定bin
下面文件夹和路径可以自定义
mongod --dbpath d:\installSoft\mongoDbDATA
mongo 127.0.0.1:27017/admin
下面是简单命令
下载mongodb
指定路径data
mongod --dbpath e:\mongoDB\mongoDbDATA
mongo 127.0.0.1:27017/admin
use dbname --新建数据库
db.dropDatabase() --删除
show dbs --显示
show collections --显示集合
db.persons.insert({name:"hello"}) --插入数据
db.persons.find()
db.persons.update({name:"hello"},{$set:{name:"newh"}})
var p=db.persons.findOne()
p
db.persons.update(p,{name:"updateV"})
db.persons.update({name:"updateV"},{$set:{age:1,name:"newV"}})
db.persons.remove({age:1}) --删除数据
db.persons.drop() --删除 persons
db.help()
function insertxx(obj){
db.getCollection("dbName").text.insert(obj)
}
insertxx({name:"hello"})
db.getCollection("dbName").find()
db.eval("return 'mongodb'")
for(var i=0;i<10;i++){
db.pp.insert({name:i})
}
db.pp.insert({_id:"重复"}) --报错
db.pp.save({_id:"重复"}) --更新
db.pp.remove() --集合删除 索引不会删除
db.system.indexes.find()
db.pp.remove({_id:1}) --条件删除
db.docName.update({查询器},{修改器})
insertOrUpdate --默认false
db.docName.update({查询器},{修改器},true)
--批量更新 false更新不保存,true批量(默认只更新第一条数据)
db.pp.update({name:"hello"},{$set:{name:"helloWrold"}},false,true)
$set
$inc -- 追加 数字
$unset --去掉指定健
$push --汪加数组 db.test.update({_id:1},{$push:{books:["01","02","03"]}})
db.test.update({_id:1},{$pushAll:{books:["01","02","03"]}})
$addToSet --如果数组中没才添加
db.test.update({_id:1},{addToSet{books:"hellos"}})
$pop -1删除第一个值 1 删除最后一个值 1
$pull --删除一个被指定的数值
$pullAll db.test.update({_id:1},{$pullAll:{books:["aa","bb"]}})
$.在数组对像中修改
db.test.update({"books.type":"db"},{$set:{"books.$.author":"liangrui"}})
--把有的不加入,没有的加入
db.test.update({_id:2},{$addToSet:{books:{$each:["js","db"]}}})
--runCommand 只能修改一条娄据 new 返回 pp是更新前的还是更新后的
ps=db.runCommand({
"findAndModify":"test",
"query":{"name":"hello"},
"update":{"$set":{"age":"wwww"}},
"new":true
})
ps.value
db.rui.find({},{_id:0,name:1})-- 查询指定列 {条件}{显示} 0不显示
m 在>25 <30之间的数()
db.rui.find({m:{$gte:25,$lte:30}},{_id:0,name:1})
--不等于
db.rui.find({name:{$ne:"hello"}},{})
--in 在
db.rui.find({name:{$in:["hello"]}},{})
--nin 不在
db.rui.find({name:{$nin:["hello"]}},{})
--or c大于20 或者m大于30的数据
db.rui.find({$or:[{c:{$gt:20}},{m:{$gt:30}}]},{})
--查询为null
db.rui.find({sex:{$in:[null]}},{_id:0,name:1,sex:2})
--正则查询
db.rui.find({name:/ji/i},{_id:0,name:1})
--取返
db.rui.find({name:{$not:/ji/i}},{_id:0,name:1})
--喜欢js 和java书的学生
db.rui.find({books:{$all:["js","java"]}},{books:1,_id:0,name:2})
--查询第二本是c++的学生
db.rui.find({"books.1":"c++"},{books:1,_id:0,name:2})
--查询指定长度数组$size 它不能与比较查询符一起使用
查询 出喜欢 的书 数量是4本的学生
db.rui.find({books:{$size:3}})
--查询出喜欢的书箱数量大于2本的学生
db.rui.update({},{$set:{size:3}},false,true)
db.rui.find()
--第次加减书的时候 更新size
db.rui.update({},{$set:{size:3}},false,true)
db.rui.update({name:"jim"},{$push:{books:"c"},$inc:{size:1}})
--书本==5的
db.rui.find({size:4})
--查询jim喜欢书的数量
var jim=db.rui.find({name:"jim"})
while(jim.hasNext()){
obj=jim.next();
print(obj.books.length)
}
shell 是个js的引擎 要用驱动包
$slice 指定数组的内部值
db.rui.find({name:"jim"},{books:{$slice:[1,3]},_id:0})
-1 最后一本书
db.rui.find({name:"jim"},{books:{$slice:-1},_id:0})
--文档查询
var jim=[
{
school:"k",
score:"a"
},
{
school:"l",
score:"b"
} ,
{
school:"j",
score:"p+"
}
]
db.rui.update({name:"jim"},{$set:{school:jim}})
--必须顺序一样,全部指定
db.rui.find({school:{school:"k",score:"a"}},{_id:0})
--优化
db.rui.find({"school.score":"a","school.school":"k"},{_id:0,school:1})
--$elemMatch解决顺序的问题 和 遍历 全部对象查询
db.rui.find({school:{$elemMatch:{school:"k"}}},{_id:0,school:1})
$where
查询age大于22,喜欢c++ 在k学校上过的学生
db.rui.find({"$where":function(){
//得到查询结果的每一条文档
var books=this.books;
//得到文档中的school对象
var school=this.school;
//如果年纪>=22
if(this.age>22){
var cjj=null;
//遍历数据
for(var i=0;i<books.length;i++){
if(books[i]=="c++"){
cjj=books[i];
//如果学校是真
if(school){
for(var j=0;j<school.length;j++){
//是不是在k学校上学
if(school[j].school=="k"){
//返回真
return true;
}
}
break;
}
}
}
}
}})
---分页
db.rui.find({},{_id:0,name:1}).limit(5)
db.rui.find({},{_id:0,name:1}).limit(5).skip(5)
db.rui.find({},{_id:0,name:1,age:2}).limit(5).skip(5).sort({age:1})
db.rui.find({},{_id:0,name:1,age:2}).limit(5).skip(5).sort({name:-1})
标签:mongodb
原文地址:http://blog.csdn.net/liangrui1988/article/details/43230995