mongodb
- use dbName - show dbs - show collections - db.createCollection('collectionName') - db.collectionName.drop()
增加
- db.collectionName.insert({})
- insert([]) insertOne({}) insertMany([])
查询
- db.collectionName.find({key:value}) //pretty()美观显示 count()查询数量 - findOne({}) //返回对象而不是数组 - find().limit(10).skip(2) //sort({属性一:1,属性二:-1})排序,默认_id时间(戳)排序 - find({$or:[{name:20},{sex:male}]}) //或,$and find({num:{name:20,sex:male}}) - $gt大于 $lt小于 $gte $lte $ne不等于 $eq严格等于(数组中有也不行) - find({查询条件},{属性:1,属性1,_id:0}) //投影局部查询
更新
- db.collectionName.update({title:'test'},{likes:'1234'}) //整体替换 - update({title:'test'},{$set:{likes:1234}}) //替换局部属性 - {$inc:{likes:2}}属性加2 - {multi:true}取到的所有,以上默认只取第一个 - updateOne updateMany replaceOne
删除
- db.collectionName.remove({查询条件}) //deleteOne deleteMany - remove({})只删内容 drop()名索引全删 db.dropDatabase()删库
内嵌文档(官网很多)
- db.collectionName.find({'likes.hobby':'sing'}) //key必加引号 - 查文档
mongoose(对象文档模型(ODM)库)
let mongoose = require('mongoose') let Schema = mongoose.Schema url=mongodb://username:password@localhost:27017/admin?authSource=admin 或 mongodb://localhost:27017/admin
mongoose.connect(url) //{useMongoClient:true} // mongoose.connection.once('open',function(){}) // mongoose.connection.once('close',function(){}) // mongoose.disconnect() newSchema = new Schema({ name:String, age:{type:String,default:'new user'} //设置默认值 }) let collectionModel = mongoose.model('TestModel',newSchema,collectionName)
Schema相关
let testDocument = mongoose.model('user',{name:String}) //第二个参数可以直接传控制schema的对象 let testSchema = new mongoose.Schema({ name:{ type:String, default:'wang' //默认值 set:function(value){进行处理} //存入库前执行 get:function(value){进行处理} //从库化model时执行 unique:true //唯一索引 辅助索引是index } }) testSchema.virtual('属性').get(function(){return this.属性一+this.属性二}) document转json虚拟默认无 testSchema.set('toJSON',{getters:true,virtual:true})
Model相关
- model的增删改查等 - 自定义方法 - 静态 testSchema.statics.findByISBN = function(params, callback){} - 实例 testSchema.methods.print = function(){}
未完待续~~