下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); const db =...: { type: String, required: true, //!...必须 }, email: { type: String, required: true, unique...: true, //!...默认没有可以不写 }, { timestamps: true, //!
MongoDB 工具模块(mongo.js)const mongoose = require('mongoose');require('dotenv').config();mongoose.connect...(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true,});async function insertMany...(collectionName, docs) { const Model = mongoose.model(collectionName, new mongoose.Schema({}, { strict...: false }), collectionName); await Model.insertMany(docs);}module.exports = { insertMany };5..../mysql');const { insertMany } = require('./mongo');const { transformRow } = require('.
unique: 布尔值,是否在属性中定义一个唯一索引。 sparse: 布尔值,是否在属性中定义一个稀疏索引。...var schema2 = new Schema({ test: { type: String, index: true, unique: true // 如果指定`unique...创建 如果是Entity,使用save方法;如果是Model,使用create方法或insertMany方法。...,并且可以同时新增多个文档 // Model.create(doc(s), [callback]) Person.create({ name: '森林' }, callback) // Model.insertMany...(doc(s), [options], [callback]) Person.insertMany([{ name: '森林' }, { name: '之晨' }], function(err, docs
使用 Mongoose 简单的建立一个博客数据库以及模型之间的关联。...初始化项目 bash 1mkdir -p mongoose-model 2cd mongoose-model 3npm init -y 4npm i mongoose 5touch index.js COPY...js 1const mongoose = require("mongoose"); 2mongoose.connect("mongodb://127.0.0.1:27017/moogose-model-demo...", { 3 useNewUrlParser: true 4}); COPY 建立 Post 模型。...js 1Post.insertMany([{ 2 title: "第 1 条", 3},{ 4 title: "第 2 条", 5}]) 6Category.insertMany([{ 7 name
,例如: const mongoose = require('mongoose'); const AudioSchema = new mongoose.Schema({ title: { type...: String, required: true }, artist: { type: String, required: true }, url: { type: String, required...: true }, duration: { type: Number, required: true }, }); const Audio = mongoose.model('Audio', AudioSchema...audios.push({ title, artist, url, duration }); // 这里应该是一个对象,而不是Audio实例 }); // 批量保存到数据库,假设Audio.insertMany...是之前定义的Mongoose模型的静态方法 await Audio.insertMany(audios); } catch (error) { console.error('Crawl
,例如:const mongoose = require('mongoose');const AudioSchema = new mongoose.Schema({ title: { type: String..., required: true }, artist: { type: String, required: true }, url: { type: String, required: true }..., duration: { type: Number, required: true },});const Audio = mongoose.model('Audio', AudioSchema);4.3...audios.push({ title, artist, url, duration }); // 这里应该是一个对象,而不是Audio实例 }); // 批量保存到数据库,假设Audio.insertMany...是之前定义的Mongoose模型的静态方法 await Audio.insertMany(audios); } catch (error) { console.error('Crawl error
mongoose') mongoose.connect('mongodb://localhost:27017/express-test', { useNewUrlParser: true,...useUnifiedTopology: true, useCreateIndex: true, }) // 创建产品Schema const Productschema = new mongoose.Schema...({ title: { type: String, unique: true} }) // 定义MongoDB数据模型 (表=》集合) const Product = mongoose.model...= new mongoose.Schema({ title: { type: String, unique: true} }) // 定义MongoDB数据模型 (表=》集合) const...Product = mongoose.model('Product',Productschema) // 往MongoDB数据库中插入数据 // Product.insertMany([ // {
一、mongoose 安装:npm install mongoose // 1,引入mongoose const mongoose = require('mongoose') // 2....Object.defineProperty()定义自定义getter set:同上 alias:别名 索引相关 可以使用 schema type定义索引相关 index:布尔值 是否对这个属性创建索引 unique...updade aggregate 中间件作用于MyModel.aggregate(),他会在你对 aggregate 对象调用 exec()时执行 aggregate Model中间件支持以下操作: insertMany...x为这些函数制定了新钩子 schema.pre('find',function(){ conosle.log(this instanceof mongoose.query) //true this.start...而后错误处理中间件可以让你自由地做错误的后续处理 const schema = new Schema({ name:{ type:String, unique:true } })
'蔬菜' : '水果' } }) // 插入 await col.insertMany(data); console.log("插入测试数据成功");...nearSphere // 创建stations集合 const stations = db.collection("stations"); // 添加测试数据,执行一次即可 await stations.insertMany...而mongoose就是i 一个良好的工具。 mongoose是一个优雅的nodejs对象文档模型。它是由关系型数据库的思想去应用到非关系型数据库。...("mongoose"); // 1.连接 mongoose.connect("mongodb://localhost:27017/test", { useNewUrlParser: true })...: true }); const conn = mongoose.connection; conn.on("error", () => console.error("连接数据库失败")); conn.once
/db.js'); var ArticleCateSchema = new mongoose.Schema({ title: { type: String, unique...: true }, descripton: String, addtime: { type: Date } }); module.exports = mongoose.model.../db.js'); var UserSchema = new mongoose.Schema({ username: { type: String, unique...: true }, password: String, name: String, age: Number, sex: String, tel: Number.../db.js'); var ArticleSchema = new mongoose.Schema({ title: { type: String, unique
const userSchema = new mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId }); userSchema.index...({ title: 'text', content: 'text' }); 唯一索引(Unique Index): 确保集合中每个文档的索引字段值都是唯一的。...const userSchema = new mongoose.Schema({ username: { type: String, unique: true } })...const userSchema = new mongoose.Schema({ preferences: { type: Object, sparse: true }...quantity: Number }); orderSchema.index({ user: 1, product: 1, quantity: 1 }, { unique: true })
unique: true }, descripton:String, addtime:{ type:Date } }); module.exports...=mongoose.model('ArticleCate',ArticleCateSchema,'articlecate'); 2..../db.js'); var UserSchema = new mongoose.Schema({ username: { type: String, unique...: true }, password: String, name: String, age: Number, sex: String, tel: Number...String, unique: true }, // 分类ID cid: { type: Schema.Types.ObjectId, // 引用文章分类的模型
Mongoose 中除了以前创建索引的方式,也可以在定义 Schema 的时候指定创建索引。...index:true }, sn:{ type:String, // 唯一索引 unique:true }, age...Mongoose 的静态方法与实例方法 为 schema 添加静态方法时通过statics关键字添加,添加实例方法通过methods 关键字添加。...// 引入自定义的连接数据库文件 var mongoose=require('..../ 普通索引 index:true }, sn:{ type:String, // 唯一索引 unique:true
= require('mongoose');const productSchema = new mongoose.Schema({ name: String, price: Number, link...: String});const Product = mongoose.model('Product', productSchema);async function saveToDB(data) {...await mongoose.connect('mongodb://localhost:27017/scraping'); await Product.insertMany(data); await...mongoose.disconnect();}六、反爬虫对策设置合理的请求头headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64...+ min) );}处理 Cookieconst jar = new tough.CookieJar();axios.get(url, { jar: jar, withCredentials: true
name: String, bookIds: [{ type: Number, ref: 'Books' }] }); AuthorSchema.index({ authorId: 1}, { unique...const mongoose = require('mongoose'); const Schema = mongoose.Schema; const BookSchema = new Schema({...bookId: Number, name: String, }); BookSchema.index({ bookId: 1}, { unique: true }); module.exports...', true) mongoose.connect(DB_URL, {useNewUrlParser: true, useUnifiedTopology: true}); module.exports...}, toObject: { virtuals: true }, }); // 或以下方式 // AuthorSchema.set('toObject', { virtuals: true })
两个Schema: User:用户 Article:文章 其中一个用户可以包含多个文章 使用mongoose 在关系型数据库中,我们通常将这两个对象设计成一对多的关系,一个User对应多个Article...而使用mongoose我们可以如此设计: User: { username: {type: String, required: true, unique: true},// 用户名 password...: {type: String, required: true} } Article: { title: {type: String, required: true}, content...: {type: String, required: true}, created_time: {type: Date, default: Date.now}, _user: {...type: Schema.Types.ObjectId, ref: 'User' } } Article中的_user字段是关键,使用ref,将其与User关联,那么使用mongoose
= require('mongoose') // 链接数据库 mongoose.connect('mongodb://localhost:27017/express-auth',{ useCreateIndex...:true, useNewUrlParser:true }) 在你server.js写一点路由,测试数据库是否链接成功,启动服务的话,你可以全局安装nodemon ,然后通过在命令控制台出入nodemon...注册功能 首先建立模型,在models.js建立对应的模型,这里因为是登录和注册,就写两个字段就行,如果需要,可以自行添加对应的字段名,unique表示用户名是唯一的,不让重复添加 const UserSchema...= new mongoose.Schema({ username:{ type:String, unique:true //字段是否唯一 },...({ username:{ type:String, unique:true //字段是否唯一 }, password:{ type
.insertMany(doc) 插入多个文档 下面两个方法更像是第一个方法的拆分,但是下面两个语义更加清晰 插入文档时,如果没有给文档指定 _id 属性,则数据库会自动为文档添加 _id,可以自己指定...db.person.update( {name:"张三"}, {$set: { sex: "男", address: "幸福村" }}, {multi: true....remove({条件}) 删除符合条件的所有文档,第二个参数为 true 只删除一个 条件必须设置,如果没有直接删除所有文档 db....使用 npm install mongoose命令下载 使用 const mongoose = require('mongoose'); 引入 mongoose 使用 mongoose.connect..._id } }); 模块化连接 定义一个模块连接数据库 // tools/conn_mongo.js const mongoose = require('mongoose'); mongoose.connect
: 'username', // 不要用 unique: true, comment: '用户名,唯一', }, password: { type: STRING...}) } } module.exports = syncDb 上面代码的一些逻辑总结为一句话:seq.sync({ alter: true }) 3-5 Mongodb和Mongoose...('useCreateIndex', true) mongoose.set('useFindAndModify', false) // 开始连接( 使用用户名和密码时,需要 `?...jwtKoa({ secret: JWT_SECRET, cookie: 'jwt_token', // 使用 cookie 存储 token }).unless({ // 定义哪些路由忽略...required:true, unique:true }, password: String, nickname: String }) // Model对应 collection