Mongodb相关
1.创建一个文件夹作为数据库存放的目录2.打开cmd cd到Mongodb/bin目录去3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目录)"4.打开新终端,原窗口最小化,运行bin目录下的mongo可执行文件,连接数据库
MongodbShell命令
use dbName
切换到某个数据库,如果dbname不存在,则会创建并切换
db.dropDatabase()
删除当前数据库(前提是先进入到当前数据库)
show dbs
查询所有的数据库
db.createCollection("tableName")
在当前数据库中创建一张数据表,这个命令不常用
show collections
查看当前数据库中的所有表(数据集合)
db.tableName.insert(); 使用表时如果不存在,会自动创建db.tableName.insert({name:'baimao',age:12,sex:'女'})
创建一张表并插入一条数据
db.tableName.save({name:'baimao',age:12,sex:'女'})
向数据库的某个数据集合插入一条数据
db.tableName.find({name:'baimao',age:12})
查询name=baimao且age=12的元祖
根据查询条件来查询当前表,并集查询条件用,号 find也可以不写参数,查出全部数据db.tableName.find({$or:[{name:'baimao'},{age:18}]});
查询满足name=‘baimao’或者age=18的元祖
db.tableName.find({age:{$lt:23}})
db.tableName.find({age:{$lte:23}}) db.tableName.find({age:{$gt:23}}) db.tableName.find({age:{$gte:23}}) db.tableName.find({age:{$ne:23}})查询年龄<(<=,>,>=,!=)23的所有元祖
支持正则表达式的查询
查询条件支持正则表达式: db.people.find({name:/四/}) 查找姓名包含:四 的人 db.people.find({name:/^张/}) 查找姓 张 的人 db.people.find({name:/^张.$/}) 查找姓 张 的人并且不能以空格结束 db.people.count() 集合中数据个数 db.people.find({},{name:1,_id:0}) 只查找name这一列(field)
db.person.count()
计算当前表的元祖数目
db.person.find().sort({age:1})
将年龄正序排序
db.person.find().sort({age:-1})
将年龄逆序排序
db.person.find().skip(n)
跳过(删除)查询结果中前n条数据。
db.person.find().limit(n)
从查询结果中取前n条数据。
db.preson.find().skip(2).limit(3)
从查询结果中取第二条后开始的三条数据
1.插入数据: db.person.insert({"name":"baimao","age":"16"});2.查找数据: db.person.find(); db.person.find({"name":"baimao"}) ==>可以根据指定查询条件查询3.更新数据: 整体更新: db.person.update({"name":"baimao"},{"name":"baimao","age":"15"}) [这种方法在更新字段处写全全部的key和value值] 局部更新: (1) var user = db.person.findOne({"name":"baimao"}); user.age = 12; db.person.update({"name":"baimao"},user); (2)$inc db.person.update({"name":"baimao"},{$inc:{"age":30}}); 将baimao的年龄增加30 (3)$set db.person.update({"name":"baimao"},{$set:{"age":12}}); 将baimao的年龄设置为12 批量更新 db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true}) [将所有name为baimao的字段的age属性都设置为12 更新数据(如若没有就增加) db.person.update({"name":"baimao"},{$set:{"age":12}},{mutli:true},{upsert:true}) [将update的第四个参数设置为true就可实现在查询不到结果的情况下直接增加一条记录]4.删除数据: db.person.remove({}); ==> 删除全部 db.person.remove({"name":"baimao"}) 删除指定数据5.查询: $gt > $gte >= $lt < $lte <= $ne != 无(:) = 无(,) && $or || (or指的是在某些键值对中查询) $in in (in指的是某个key值在一个value值组成的数组中查询) $nin notIn 正则查询: db.person.find({"name":/^b/,"name":/o$/}) name字段以b开头以o结尾 js方法查询: db.person.find({$where:function() {return this.name == 'baimao'});
Mongodb与Nodejs相关
1.引入Mongodb接口Moogoose2.node连接数据库(moogoose.connect("mongodb://localhost:27017/data")) data为数据库名称2.定义模式Schema(模式中定义属性或字段的类型等)模式定义结构 var Schema = moogoose.Schema var student_Schema = new Schema( { name:String, id:Number, ... }, { //禁止moogoose创建集合时默认给集合添加versionKey属性 versionKey:false });3.根据模式Schema定义模型model 模型操作实例 moogose.model("Student",student_Schema)4.访问模型 var myStudent = mongoose.model("Student");或者 var myStudent = mongoose.model("Student",{ name:String, id:Number, ... },{ versionKey:false });5.创建实例 var student = new myStudent({ name:'baimao', id:123, })归纳:1.引入mongoose2.设置mongoose连接并监听on('open'/'error')3.引用 mongoose自带的Schema4.通过mongoose自带的Schema设置自定义的Schema(定义表的结构)5.将自定义的Schema设置在mongoose.model()中 mongoose.model("Comment",Comment_schema); 设置一张表的结构6.自定义model var MyComment = mongoose.model("Comment"); 创建表7.创建表的实例 var sam = new MyComment({name:'hhh',age:'jjj'}); 只在save的时候用 mongoose数据的删改查方法通过表来实现 即MyComment来实现 而增加需要表的实例