-
启用服务:Mongod
需要建立data/db文件夹
-
链接服务:mongo
- 查看已有数据库:show dbs
- 使用数据库:use admin
- 显示数据库中的集合:show collections
- 查看数据库版本:db.version()
- 输出:console.log print(‘巴拉巴拉’)
-
操作命令
use user //进入(建立)一个数据库
db //查看当前数据库(user)
db.info.insert({“name”: “sunjia”}) //新建info集合,并插入文件
db.info.find() //查看info集合下的所有文件
db.info.findOne() //查询user数据库下info集合里边第一个文件
db.info.update({“name”:“sunjia”},{“name”:“jiajia”,“age”:“40”}) //修改文件
db.info.remove({“name”:“sunjia”}) //删除info集合中的文件
db.info.drop() //删除info集合
db.dropDatabase() //删除user数据库
-
批量插入文件(以数组的形式)
db.test.insert([ {"_id":1}, {"_id":2}, {"_id":3} ])
find如何在js文本中使用
var db = connect("company") //进行链接对应的集合collections var result = db.workmate.find() //声明变量result,并把查询结果赋值给result result.forEach(function(result){ printjson(result) })
find的参数使用方法
query:查询条件,MongoDB默认的第一个参数。
fields:返回内容,可以用true和false控制是否显示。
limit:返回的数量,后边跟数字,控制每次查询返回的结果数量。
skip: 跳过多少个显示,和limit结合可以实现分页。
sort:排序方式,正序1,倒序-1。
db.workmate.find( {}, {name: true, age: true, _id: false} ).limit(6).skip(2).sort({age:1})
find的数组查询
$in:数组的或查询
db.workmate.find( {interest:{$in:["看电影"]}}, //查询interest数组里边包含‘看电影’的信息 {name:1,interest:1,age:1,_id:0} )
也可以
db.workmate.find(
{interest:'看电影'}, //{interest:['看电影']},去掉[],否则完全匹配
{name:1,interest:1,age:1,_id:0}
)
db.workmate.find( {interest:{$in:["看电影","看书"]}}, //查询interest数组里边包含‘看电影’ 或 ‘看书’ 的信息 {name:1,interest:1,age:1,_id:0} )
db.workmate.find( {interest:{$all:["看电影","看书"]}}, //查询interest数组里边包含 ‘看电影’ 和 ‘看书’的信息 {name:1,interest:1,age:1,_id:0} )
$size:数组个数
db.workmate.find(
{interest:{$size:5}}, //查询interest数组的数量是5个的信息
{name:1,interest:1,age:1,_id:0}
)
$slice:显示数组中前/后几个
db.workmate.find(
{},
{name:1,interest:{$slice:2},age:1,_id:0} //显示interest数组的前2项
)
db.workmate.find(
{},
{name:1,interest:{$slice:-1},age:1,_id:0} //显示interest数组的最后一项
)
find的多条件查询
$in:一键多值
db.workmate.find(
{age:{$in:[25,33]}}, //查询年龄是25或33的信息 {name:1,"skill.skillOne":1,age:1,_id:0} )
$nin:除了$in条件以外的值
$or:查询多键值(或者)
db.workmate.find(
{$or:[{age:{$gte:30}},{"skill.skillThree":'PHP'}]},
{name:1,"skill.skillThree":1,age:1,_id:0}
)
$and:查询多个键值(并且)
db.workmate.find(
{$and:[{age:{$gte:30}},{"skill.skillThree":'PHP'}]},
{name:1,"skill.skillThree":1,age:1,_id:0}
)
查询:find
db.workmate.find( {"skill.skillOne":"HTML+CSS"}, //条件 {name:true,"skill.skillOne":true,_id:false} //结果 )
不等修饰符
$lt //less-than 小于 $lte //less-than-equal 小于等于 $gt //greater-than 大于 $gte //greater-than-equal 大于等于 $ne //not-equal 不等于
db.workmate.find( {age:{$lte:30,$gte:25}}, {name:true,age:true,"skill.skillOne":true,_id:false} )
db.runCommand()://返回执行结果
db.runCommand({ping:1})://查看是否和数据库连接成功
db.workmate.update({sex:1},{$set:{money:1000}},false,true) var resultMessage=db.runCommand({getLastError:1}) printjson(resultMessage); //false:upsert的简写 //true:multi的简写
//getLastError:1 :表示返回功能错误
findAndModify:
var myModify={ findAndModify:"workmate", query:{name:'JSPang'}, update:{$set:{age:18}}, new:true } var ResultMessage=db.runCommand(myModify); printjson(ResultMessage) //以json对象的格式输出到控制台
- query:需要查询的条件/文档
- sort: 进行排序
- remove:[boolean]是否删除查找到的文档,值填写true,可以删除。
- new:[boolean]返回更新前的文档还是更新后的文档。
- fields:需要返回的字段
- upsert:没有这个值是否增加。
update修改器
$set(对已有文件:‘name:MinJie’,的键值进行操作:修改/增加)
db.workmate.update({"name":"MinJie"},{"$set":{sex:2,age:21}}) 修改嵌套数据 db.workmate.update({"name":"MinJie"},{"$set":{"skill.skillThree":'word'}})
$unset用于将key删除
db.workmate.update({"name":"MinJie"},{$unset:{"age":''}})
$inc对数字进行计算(必须是数字,字符串不起效果)
db.workmate.update({"name":"MinJie"},{$inc:{"age":-2}})
multi选项(multiple,多选)
db.workmate.update({},{$set:{interset:[]}},{multi:true})
upsert选项(如果没有文件,添加文件)
db.workmate.update({name:'xiaoWang'},{$set:{age:20}},{upsert:true})
update数组修改器
$push追加数组/内嵌文件({})数据
db.workmate.update({name:'xiaoWang'},{$push:{interest:'draw'}})
db.workmate.update({name:'MinJie'},{$push:{"skill.skillFour":'draw'}})
$addToSet 查找数组中数据是否存在,不存在直接push进去,存在不修改
db.workmate.update({name:"xiaoWang"},{$addToSet:{interest:"readBook"}})
$each 批量追加数组中的数据
var newInterset=["Sing","Dance","Code"]; db.workmate.update({name:"xiaoWang"},{$addToSet:{interest:{$each:newInterset}}})
$pop 删除数组值(1:从末端删除一个,-1:从开始删除一个)
db.workmate.update({name:'xiaoWang'},{$pop:{interest:1}})
数组定位修改
db.workmate.update({name:'xiaoWang'},{$set:{"interest.2":"Code"}})