npm install express -g npm install express-generator -g
cmd: express project(项目名字) -e(使用ejs模板引擎)
cd project npm install
1. package.json body-parse:专门负责解析前端传递来的数据 cookie-parser:解析请求头中的cookie信息 ejs:模板引擎编译工具 serve-favicon:专门处理相似于谷歌浏览主动请求favicon.ico文件的问题 2. bin/www 这个是和建立的服务相关的东西,能够在这里配置端口等等设置。 3. public:静态资源文件夹,在这个文件夹里的文件,在前端均可以直接访问,不须要再在后端配置路由, /stylesheets/a.css 4. app.js:主应用文件,在这里能够设置路由、插件等等之类的东西,其实建立出来的就是requestListener 5. views:放入ejs模板,express会将ejs模板装换成html文件 6. routes:里面的全是路由文件,专门来处理不一样的请求
[ { "_id":ObjectId("1726iuhas678971726731"), "age":25, "city":"beijing", "email":"asdgakj@qq.com" }, { "_id":ObjectId("1726iuhas678971726731"), "age":25, "city":"beijing", "email":"asdgakj@qq.com" } ]
[ {"genres": ["犯罪","剧情" ],"title": "肖申克的救赎"}, {"title":"阿甘正传",grade:"8.4","genres":"励志"} ]
{ 'title':['aaa',"aaa","aaa",["a":{}]] }, { 'title':'bbb' }
String : 这是最经常使用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。 Integer : 这种类型是用来存储一个数值。整数能够是32位或64位,这取决于您的服务器。 Boolean : 此类型用于存储一个布尔值 (true/ false) 。 Double : 这种类型是用来存储浮点值。 Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。 Arrays : 使用此类型的数组或列表或多个值存储到一个键。 Timestamp : 时间戳。这能够方便记录时的文件已被修改或添加。 Object : 此数据类型用于嵌入式的文件。 Null : 这种类型是用来存储一个Null值。 Symbol : 此数据类型用于字符串相同,但它一般是保留给特定符号类型的语言使用。 Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。能够指定本身的日期和时间,日期和年,月,日到建立对象。 Object ID : 此数据类型用于存储文档的ID。 Binary data : 此数据类型用于存储二进制数据。 Code : 此数据类型用于存储到文档中的JavaScript代码。 Regular expression : 此数据类型用于存储正则表达式
* Help查看命令提示 help db.help() db.test.help() db.test.find().help() * 建立/切换数据库 use music * 查询数据库 show dbs 空库将不会显示 db.albums.insertOne({'title':'bey bey'})来插入一条后再看 * 查看当前使用的数据库 db/db.getName() * 显示当前DB状态 db.stats() * 查看当前DB版本 db.version() * 查看当前DB的连接机器地址 db.getMongo() * 删除数据库 db.dropDatabase()
建立一个汇集集合 db.createCollection("collName", {size(集合大小): 20, capped(固定大小,可提升使用效率): true, max(最大值): 100}); db.collName.isCapped(); //判断集合是否为定容量 获得指定名称的汇集集合 db.getCollection("account"); 获得当前db的全部汇集集合 db.getCollectionNames(); 显示当前db全部汇集的状态 db.printCollectionStats();
db.users.find()
db.users.save({name: ‘zhangsan', age: 25, sex: true}); db.users.insertOne({name: ‘zhangsan', age: 25, sex: true}); db.users.insertMany([{name: ‘zhangsan', age: 25, sex: true},{name: ‘zhangsan', age: 25, sex: true}]);
db.users.update({age: 25}(约定条件,所有修改只写{}), {$set: {name: 'changeName',sex:1}}, false, true); 第三个参数为,若是没有这个数据,会不会建立,第四个参数为,若是有不少,是要全改true,仍是只改第一条 至关于:update users set name = ‘changeName' where age = 25; db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true); 至关于:update users set age = age + 50 where name = ‘Lisi'; db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true); 至关于:update users set age = age + 50, name = ‘hoho' where name = ‘Lisi';
db.users.remove({age: 32});符合条件全删
db.users.remove({age: 132},{justone:true});只删一条
db.users.remove({});删除全部document
db.users.findAndModify({
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
db.runCommand({ findandmodify : "users",
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
query 过滤条件 $gte大于
sort若是多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操做,-1位为降序
remove 若为true,被选中对象将在返回前被删除
update 一个 修改器对象
remove 建立新对象若查询结果为空
mongodb在存储数据的时候会自动的为每个document生成一个_id主键,咱们在nodeJS中根据_id查找的时候要注意一点,不能直接:
let _id = '5a0bc041bf680d5ee434683d'
coll.find({_id:_id})
须要从mongodb模块中引入ObjectID方法,这个方法能够将上面的字符串转成mongodb数据库能够识别的_id数据类型
var ObjectID = require("mongodb").ObjectID
let _id = '5a0bc041bf680d5ee434683d'
coll.find({_id:ObjectID(_id)})
db.userInfo.find(); 至关于:select* from userInfo; 查询去重后数据 db.userInfo.distinct("name"); 至关于:select distict name from userInfo; 查询age = 22的记录 db.userInfo.find({"age": 22}); 至关于: select * from userInfo where age = 22; 查询age > 22的记录 db.userInfo.find({age: {$gt: 22}}); 至关于:select * from userInfo where age >22; 查询age < 22的记录 db.userInfo.find({age: {$lt: 22}}); 至关于:select * from userInfo where age <22; 查询age >= 25的记录 db.userInfo.find({age: {$gte: 25}}); 至关于:select * from userInfo where age >= 25; 查询age <= 25的记录 db.userInfo.find({age: {$lte: 25}}); 查询age >= 23 而且 age <= 26 db.userInfo.find({age: {$gte: 23, $lte: 26}}); 查询name中包含 mongo的数据 db.userInfo.find({name: /^mongo/}); //至关于%% select * from userInfo where name like ‘%mongo%’; 查询name中以mongo开头的 db.userInfo.find({name: /^mongo/}); 至关于select * from userInfo where name like ‘mongo%’; 查询指定列name、age数据 db.userInfo.find({}, {name: 1, age: 1}); 至关于:select name, age from userInfo; 查询指定列name、age数据, age > 25 db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}); 至关于:select name, age from userInfo where age >25; 按照年龄排序 升序:db.userInfo.find().sort({age: 1}); 降序:db.userInfo.find().sort({age: -1}); 查询name = zhangsan, age = 22的数据 db.userInfo.find({name: 'zhangsan', age: 22}); 至关于:select * from userInfo where name = ‘zhangsan' and age = ’22'; 查询前5条数据 db.userInfo.find().limit(5); 至关于:select top 5 * from userInfo; 查询10条之后的数据 db.userInfo.find().skip(10); 至关于:select * from userInfo where id not in ( select top 10 * from userInfo ); 查询在5-10之间的数据 db.userInfo.find().limit(10).skip(5); or与 查询 db.userInfo.find({$or: [{age: 22}, {age: 25}]}); 至关于:select * from userInfo where age = 22 or age = 25; 查询第一条数据 db.userInfo.findOne(); 至关于:selecttop 1 * from userInfo; db.userInfo.find().limit(1); 查询某个结果集的记录条数 db.userInfo.find({age: {$gte: 25}}).count(); 至关于:select count(*) from userInfo where age >= 20;
今天说的知识点有点多,须要记得也比较多,有须要的地方能够记下来,方便运用,好了,就这么多了。php