mongodb

  • 启用服务: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"}})
原文地址:https://www.cnblogs.com/qq254980080/p/9192498.html