node--20 moogose demo2

db.js

/**
 * Created by Danny on 2015/9/28 16:44.
 */
//引包
var mongoose = require(‘mongoose‘);
//创建数据库连接,每一个用户都会创建一个db,
var db      = mongoose.createConnection(‘mongodb://127.0.0.1:27017/haha‘);
//监听open事件
db.once(‘open‘, function (callback) {
    console.log("数据库成功连接");
});
//向外暴露这个db对象
module.exports = db;

students.js

/**
 * Created by Danny on 2015/9/28 16:47.
 */
var mongoose = require(‘mongoose‘);
var db = require("./db.js");

//创建了一个schema结构。
var studentSchema = new mongoose.Schema({
    name     :  {type : String},
    age      :  {type : Number},
    sex      :  {type : String}
});
//创建静态查找方法
studentSchema.statics.zhaoren = function(name, callback) {
    this.model(‘Student‘).find({name: name}, callback);
};
//创建修改的静态方法
studentSchema.statics.xiugai = function(conditions,update,options,callback){
    this.model("Student").update(conditions, update, options, callback);
}
//创建了一个模型,就是学生模型,就是学生类。
//类是基于schema创建的。
var studentModel = db.model(‘Student‘, studentSchema);
//向外暴露
module.exports = studentModel;

app.js

/**
 * Created by Danny on 2015/9/28 16:45.
 */

//定义了一个模型,学生模型,“学生类”
var Student = require("./models/Student.js");
////实例化了一个学生类
//var xiaoming = new Student({"name":"小明","age":12,"sex":"男"});
////保存这个学生类
//xiaoming.save(function(){
//    console.log("存储成功");
//});

//用类来创建一个对象(工厂)
Student.create({"name":"小红","age":13,"sex":"女"},function(error){
   console.log("保存成功");
})
//
Student.zhaoren("小明",function(err,result){
    console.log(result);
});

Student.xiugai({"name":"小明"},{$set : {"age":30}},{},function(){
    console.log("改年龄成功");
});
时间: 2024-11-06 07:29:31

node--20 moogose demo2的相关文章

5.20 考试 20 未完

水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上有五种符号:". * X D S".其中"X"表示石头,水和人都不能从上面经过."."表示平原,CCY和洪水都可以经过."*"表示洪水开始地方(可能有多个地方开始

tensorflow节点布放(device assignment of node)算法:simpler_placer

tensorflow v0.9中目前在用的devcie assignment算法是simple placer算法,相比于白皮书中cost model算法实现简单.simpler placer算法优先选择/gpu:0设备, 但不支持 multi gpu assignment. 白皮书提到的cost model可以根据设备资源代价.数据传输代价平衡分配设备,在v0.9版本中有部分实现,但还未开放使用,见 core/graph/costmodel.cc simple_placer的实现代码在文件pyt

node.js下面创建一个express应用的几条命令【乱序版】

https://github.com/mdn/express-locallibrary-tutorial https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction (用chrome浏览器打开,然后记得用google的自动翻译功能,将页面的内容都自动翻译为中文) 地2个连接是个非常不错的入门文章.非常全面和详细.下面的命令,都是这篇文章里面用到的,特意整理的. 这个文章还有一个完整的

BZOJ3110 [ZJOI2013] K大数查询(加强数据)

原来的题解:http://www.cnblogs.com/jimzeng/p/bzoj3110.html 有必要特意再写一篇题解…… OrzKPM!KPM加了两组数据结果我原来的代码就被叉了…… 看到数据没有负数KPM就加了负数,然后还卡了long long(极端情况:50000次,每次在1,50000中加入一个同样的数) 需要离散化数据,加long long 然后速度就明显慢了……(9556ms -> 12292ms) 贴代码: 1 #include <iostream> 2 #inc

dom操作

1 1.滚动条位置查询 2 document.documentElement.scrollLeft; 3 document.documentElement.scrollTop; 4 5 2.document,element,text是node的子类 6 节点树的根部是document 7 8 document.getElementById("")//id值是唯一的 9 10 document.getElementByName("") 11 //根据name属性选取元

hdu 1728 bfs **

简单bfs,记录好状态即可 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 #define MOD 1000000007 10 const int INF=

【BZOJ2741】【块状链表+可持久化trie】FOTILE模拟赛L

Description FOTILE得到了一个长为N的序列A,为了拯救地球,他希望知道某些区间内的最大的连续XOR和. 即对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor Aj),其中l<=i<=j<=r. 为了体现在线操作,对于一个询问(x,y): l = min ( ((x+lastans) mod N)+1 , ((y+lastans) mod N)+1 ).r = max ( ((x+lastans) mod N)+1 , ((y+last

51nod 1463 找朋友(线段树+离线处理)

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1463 题意: 思路: 好题! 先对所有查询进行离线处理,按照右区间排序,因为k一共最多只有10个,所有在该区间内的B数组,每次枚举K值,通过这样的方式来得到另外一个B值.但是这样得到的B值它在B数组中的位置必须在当前数的左边.如下图:(j为当前数在B数组中的位置,pos为计算得到的另一个B值在数组中的位置) 这两个数的和记录在pos中,这里pos的位置必须在j的左边,假

【字符串+BFS】Problem 7. James Bond

https://www.bnuoj.com/v3/external/gym/101241.pdf [题意] 给定n个字符串,大小写敏感 定义一个操作:选择任意m个串首尾相连组成一个新串 问是否存在一个这样的串s,s可以由不同的串首尾相连得到 最多100个字符串,所有字符串的总长度不超过5000 [样例解释] aB5可以由a+B5得到,也可以由aB+5得到,所以输出YES [思路] 首先一定是在100个选择2个串a,b,a是b的前缀 然后a和b的前缀可以消去,我们想知道b剩下的右半部分是哪一个串的