mongodb

参考:https://github.com/StevenSLXie/Tutorials-for-Web-Developers/blob/master/MongoDB%20%E6%9E%81%E7%AE%80%E5%AE%9E%E8%B7%B5%E5%85%A5%E9%97%A8.md

    - 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(){}

 

 

 

 

未完待续~~

posted @ 2018-01-12 21:32  王利群  阅读(145)  评论(0编辑  收藏  举报