MongoDB数据库笔记

授权认证 (--auth)

mongod --dbpath c:/D/mongodb -logpath c:/D/mongodb/mongodb.log --auth

关联查询且筛选关联字段

这是schema层定义,user表关联task表
,mytasks:[
{type: mongoose.Schema.Types.ObjectId, ref: 'Task'}
]
var options = {};
options.populator=[{path:'mytasks', select:'name code desc price dateStarted dateExpected status maxBidder project',match:{$or: [{status: 'C1'}]}}]
options.filter = {_id:user._id};
HttpService.get('users',options)
.then(function(data) {
if(data && data.data && data.data.success) {
console.log(data.data.data[0].mytasks);
}
else{
return Promise.reject('查询mytasks错误:' + JSON.stringify(data));
}
//这里无需转换字段分项
arrayator.hasRelatedField = false;
arrayator.setCustomFilter(customFilter);
arrayator.setData(data.data.data[0].mytasks);
//console.log(arrayator);
})
.catch(UtilsService.errorHandle)
;

 

postman

form-data与x-www-form-urlencode区别

form-data主要用于文件上传,key值可以选择file或者Text属性。我们使用表单 上传文件 时,必须让<form>表单的enctype属性值为 multipart/form-data。<form action="" enctype="multipart/form-data">

x-www-form-urlencode是浏览器form表单原生的提交方式,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。<form action="" enctype="text/plain">

form-data与x-www-form-urlencoded的区别

  • multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息
  • x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的

 raw json

对象数组传递,如

{"code":"0001","name":"aaa","bid":[{"bidder": "6139c5422392d916c459905d", "price":  "10000"},{"bidder": "6139c5422392d916c459905d", "price":  "10000"}]}

数据库正则表达式

MongoDB 查询文档 | 菜鸟教程 (runoob.com)

导入数据库

mongorestore -d engyysult -u admin -p faton.Fan --drop dump/engyysult

创建用户

db.createUser({user:'admin',pwd:'faton.Fan',roles:[{role:'readWrite',db:'engyysult'}]});

 db.createUser ( {user:"hcl",pwd:"123456",roles: [ {role:"readWrite",db:"engyysult"}]})

删除用户

db.dropUser('hcl')

对数据库操作

展示数据库  show dbs 

use test

删除数据库  db.dropDatabase()  

对集合操作

use test

插入语句  db.user.insert({"username":"老王","password":"123"})  

创建空集合  #db.user  

展示集合  show collections  

删除集合  db.user.drop()  

修改列名

db.getCollection("tasks").updateMany({},{$rename:{"deadline":"dateExpected"}});  

db.students.insert({"name" : "高大拿 - A", "sex" : "男", "age" : 19, "score" : 76, "address" : "朝阳区",

                              "course": ["语文", "数学", "英语", "音乐","政治"],

                              "parents" : [{"name" : "高大拿 - A(父亲)", "age" : 50, "job" : "工人"},       

                                                 {"name" : "高大拿 - A(母亲)", "age" : 46, "job" : "职员"}]}) 

 ###插入数组 数组外面不要打引号

对象数组

 

 

 

 打印查询方法

数据库schema层构建

注意啥时候是对象啥时候是数组,默认返回的是对象数组,也就是最外面一层是数组!!!

html页面

 

效果

 

 

数组

 打印查询方法

数据库schema层构建

 

 

注意啥时候是对象啥时候是数组,默认返回的是对象数组,也就是最外面一层是数组!!!

 

 

html页面 重点!!! 要加track by $index

 

 

 

效果

 

posted @ 2021-12-25 20:30  剩下的交给时间就好  阅读(46)  评论(0编辑  收藏  举报