安装mongoose包
cnpm i mongoose
导入
var mongoose=require(‘mongoose’)
var Schema = mongoose.Schema
0.连接数据库
//`1.连接数据库`
// 如果数据库不存在,当插入第一条数据之后会自动被创建
mongoose.connect('mongodb://localhost/user')
//`2.设计文档结构(表结构)`
var userSchema =new Schema({
username: {
type:String,
required:true//必须有
},
password:{
type:String,
required: true
},
})
//`3.将文档结构发布为模型并创建集合`
//mongoose.model方法就是用来讲一个架构发布为model
//第一个参数:传入一个大写名词单数字符串用来表示数据库名称
//mongoose会自动将大写名词的字符串生成小写复数的集合名称
//例如 User 会变为 users
//第二个参数:架构 Schema 返回值:模型 构造函数
var User = mongoose.model('User',userSchema)
1.增!
//新增数据
var admin=new User({
username:'admin',
password:'123456'
})
admin.save(function (err,ret){
if(err){
console.log('插入失败');
}
else {
console.log('插入成功');
console.log(ret);
}
})
2.删!
//删除数据
User.remove(
{
username:'user2',
},
function (err,ret){
if(err){
console.log('删除失败');
}
else {
console.log('删除成功');
console.log(ret);
}
})
3.改!
//修改数据
User.updateMany(
{
username:'user1'
},
{
$set:{"password":"10086"}
},
function (err,ret){
if(err){
console.log('修改失败');
}
else {
console.log('修改成功');
console.log(ret);
}
})
4.查!
//查询数据
User.find(
{
username:'admin',
},
function (err,ret){
if(err){
console.log('查询失败');
}
else {
console.log('查询成功');
console.log(ret);
}
})
补充
1.增–补
db.表名.insertOne()
将单个文档插入到一个集合
db.表名.insertMany()
将文档数组插入到一个集合
db.表名.insert()
将单个或多个文档到一个集合。要插入一个单一的文件,传递文档;插入多个文件,传递文档数组。
同样能实现插入效果的方法
db.collection.update() 当upsert为true时//第三个参数
db.collection.updateOne() 当upsert为true时//第三个参数
db.collection.updateMany() 当upsert为true时//第三个参数
db.collection.findAndModify() 当upsert为true时**
db.collection.findAndModify() 当upsert为true时**
db.collection.findOneAndReplace() 当upsert为true时
db.collection.bulkWrite().
db.collection.save().
db.collection.save(doc)若doc含有_id且在集合中存在
,这将会替换集合内的文档(update
),不存在则是insert该文档,若不存在_id
,则是insert
2.改–补
修改数据(update updateOne updateMany
) 跟insert
一样,不推荐update
的写法($set强制修改
)
db.user.update
({“name”:“alex”},{$set:{“age”:“30”}}) 根据条件修改数据
db.user.updateOne
({“age”:“30”},{$set:{“name”:“whh”}}) 根据条件修改一条数据的内容,如出现多条,只修改最高前的数
db.user.updateMany
({“age”:“30”},{$set:{“name”:“wu_sir”}}) 根据条件修改所有数据的内容,多条修改