рд╕рдВрд╕реНрдХрд░рдг 5.2.9
рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж, рдЬрдм рдореИрдВ рдЕрдкрдирд╛ рд╡реЗрдм рдРрдк рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╢ рд╣рд░ рд╕рдордп рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:
DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
рдФрд░ рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред
#6880 . рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ
@bricss рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдиреЗрд╡рд▓рд╛ ensureIndex()
рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрднреА рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдиреЛрдб рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЪреБрдк рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ --no-deprecation
, рдпрд╛ 5.2.8 рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ 5.2.9 рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдЖрдк рднрд░реЛрд╕рд╛ рдХрд░ рд░рд╣реЗ рдереЗред рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП #6880 рдХреЛ рдлреЙрд▓реЛ рдХрд░реЗрдВ
,unique: true,index: true рдореЗрд░реЗ рдХрд┐рд╕реА рдПрдХ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рдкрд░ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╢реНрди рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
@nonniv 5.2.10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ рдФрд░ mongoose.set('useCreateIndex', true);
. рд╕реЗрдЯ рдХрд░реЗрдВ
рд╕рдВрд╕реНрдХрд░рдг 5.2.10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдмрдВрдж рдХрд░ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП?
js
mongoose.connect(config.dbUri, {
useCreateIndex: true,
useNewUrlParser: true
})
рдпрд╛
js
mongoose.set('useCreateIndex', true)
mongoose.connect(config.dbUri, { useNewUrlParser: true })
рдпрд╣ рдпрд╣рд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛)
@samuelcecilio рдЖрдк рдХреМрди рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ? рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдиреЛрдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ #6922 рдЦреЛрд▓рд╛, рдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдпрд╣рд╛рдВ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
(node:9125) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
@samuelcecilio mongoose.set('useCreateIndex', true)
рдХреЛ рдЙрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
#!/usr/bin/env node
'use strict';
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true });
mongoose.set('useCreateIndex', true);
const conn = mongoose.connection;
const Schema = mongoose.Schema;
const schema = new Schema({
name: {
type: String,
unique: true
}
});
const Test = mongoose.model('test', schema);
const test = new Test({ name: 'one' });
async function run() {
console.log(`mongoose version: ${mongoose.version}`);
await conn.dropDatabase();
await test.save();
return conn.close();
}
run();
issues: ./6922.js
mongoose version: 5.2.10
issues:
рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ 5.2.10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдиреЗрд╡рд▓реЗ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреНрдп рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЖрджрд┐?
рд╣рд╛рдп, рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рдВ, рдореИрдВрдиреЗ рддреАрди рдмрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ:
$ npm list --depth=0
...
[email protected]
...
рдореЗрд░рд╛ рдХреЛрдб
app.js
```` рдЬреЗрдПрд╕
...
рдХреЙрдиреНрд╕ рдХреЙрдиреНрдлрд┐рдЧ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('./config')
рдХрд╛рд╕реНрдЯ рдиреЗрд╡рд▓рд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдиреЗрд╡рд▓рд╛')
рдХреЙрдиреНрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╕ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдПрдХреНрд╕рдкреНрд░реЗрд╕')
рдХреЙрдиреНрд╕реНрдЯ рдРрдк = рдПрдХреНрд╕рдкреНрд░реЗрд╕ ()
mongoose.connect(config.dbUri, { useNewUrlParser: true})
mongoose.set ('useCreateIndex', рд╕рддреНрдп)
....
рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ = рдРрдк
````
рдмрд┐рди/www
```` рдЬреЗрдПрд╕
рдХреЙрдиреНрд╕реНрдЯ рдРрдк = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('../ рдРрдк')
рдХреЙрдиреНрд╕ рдХреЙрдиреНрдлрд┐рдЧ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('../config')
рдХреЙрдиреНрд╕реНрдЯ рдбреАрдмрдЧ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдбреАрдмрдЧ') ('рдмреНрд▓рд┐рдЯреНрдЬ')
рдХреЙрдиреНрд╕реНрдЯ http = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('http')
рдХреЙрдиреНрд╕реНрдЯ рдкреЛрд░реНрдЯ = рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝рдкреЛрд░реНрдЯ (рдкреНрд░реЛрд╕реЗрд╕.рдПрдирд╡реА.рдкреЛрд░реНрдЯ || config.port)
рдХрд╛рд╕реНрдЯ рдиреЗрд╡рд▓рд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдиреЗрд╡рд▓рд╛')
app.set ('рдкреЛрд░реНрдЯ', рдкреЛрд░реНрдЯ)
рдХреЙрдиреНрд╕реНрдЯ рд╕рд░реНрд╡рд░ = http.createServer (рдРрдк)
рд╕рд░реНрд╡рд░ред рд╕реБрдиреЛ (рдкреЛрд░реНрдЯ)
server.on ('рддреНрд░реБрдЯрд┐', рддреНрд░реБрдЯрд┐ рдкрд░)
рд╕рд░реНрд╡рд░.рдСрди ('рд╕реБрдирдирд╛', рдСрди рд▓рд┐рд╕рдирд┐рдВрдЧ)
рдХрд╛рд╕реНрдЯ рдореЛрдВрдЧреЛ = mongoose.connection
mongo.on ('рддреНрд░реБрдЯрд┐', рддреНрд░реБрдЯрд┐ => {рдбреАрдмрдЧ ('рдореЛрдВрдЧреЛ:' + error.name)})
mongo.on ('рдХрдиреЗрдХреНрдЯреЗрдб', () => {рдбреАрдмрдЧ ('рдореЛрдВрдЧреЛ: рдХрдиреЗрдХреНрдЯреЗрдб')})
mongo.on ('рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯреЗрдб', () => {рдбреАрдмрдЧ ('рдореЛрдВрдЧреЛ: рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯреЗрдб')})
....
````
рдЬрдм рдореИрдВ DEBUG=blitz* npm run dev
. рдЪрд▓рд╛рддрд╛ рд╣реВрдВ
``` `рдмреИрд╢
рдиреЛрдбрдореЙрди рдмрд┐рди/www
[рдиреЛрдбрдореЛрди] 1.18.3
[рдиреЛрдбрдореЛрди] рдХрд┐рд╕реА рднреА рд╕рдордп рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, rs
. рджрд░реНрдЬ рдХрд░реЗрдВ
[рдиреЛрдбрдореЛрди] рджреЗрдЦ рд░рд╣рд╛ рд╣реИ:ред
[рдиреЛрдбрдореЛрди] node bin/www
. рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдкреЛрд░реНрдЯ 3000 +0ms . рдкрд░ рдмреНрд▓рд┐рдЯреНрдЬ рд╕реБрдирдирд╛
рдмреНрд▓рд┐рдЯреНрдЬ рдореЛрдВрдЧреЛ: рдХрдиреЗрдХреНрдЯреЗрдб +14ms
(рдиреЛрдб:10622) рдкрджрд╛рд╡рдирдд рдЪреЗрддрд╛рд╡рдиреА: collection.ensureIndex рдкрджрд╛рд╡рдирдд рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп createIndexes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
````
@samuelcecilio рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп mongoose.set('useCreateIndex', true)
рдХреЛ bin/www
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛ред
@samuelcecilio рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ useCreateIndex рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреНрд▓реА рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рд░реВрдЯ рдореЗрдВ useCreateIndex рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var express = require('express');
var router = express.Router();
const mongoose = require('mongoose');
mongoose.set('useCreateIndex', true);
const Test = mongoose.model('test', { name: {type: String, unique: true }});
/* GET home page. */
router.get('/', function(req, res, next) {
Test.create({ name: 'billy' }).then((doc) => {
return res.status(200).json({ done: true, test: doc.id });
}).catch((e) => {
return res.status(500).json({ err: e });
});
});
module.exports = router;
рдЗрдВрдбреЗрдХреНрд╕ рд░реВрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ рдореБрдЭреЗ рдорд┐рд▓рд╛:
[nodemon] starting `node bin/www`
version: 5.2.10
(node:17042) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
рдореБрдЭреЗ рдорд┐рд▓реЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
[nodemon] starting `node bin/www`
version: 5.2.10
^C
рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд┐рди/www рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреЗрд╡рд▓ рдЗрд╕реЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реА рд╕рдлрд▓ рд░рд╣рд╛ред
~>: curl localhost:3000/
{"done":true,"test":"5b84a4e13ec72e4352475426"}~>:
~>:
рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдЧреНрд░рд╛рд╣рдХреЛрдВ, рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ, рдЖрджреЗрд╢реЛрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛:
рдореЙрдбрд▓/user.js
```` рдЬреЗрдПрд╕
рдХреЙрдиреНрд╕реНрдЯ рдПрдбреНрд░реЗрд╕ рд╕реНрдХреАрдорд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('./ рдкрддрд╛')
рдХреЙрдиреНрд╕реНрдЯ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реНрдХреАрдорд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('./рдкреНрд░реЛрдлрд╛рдЗрд▓')
const uuidv4 = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('uuid/v4')
рдХрд╛рд╕реНрдЯ рдиреЗрд╡рд▓рд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдиреЗрд╡рд▓рд╛')
рдХреЙрдиреНрд╕реНрдЯ рд╕реНрдХреАрдорд╛ = рдиреЗрд╡рд▓рд╛ред рд╕реНрдХреАрдорд╛
mongoose.set ('useCreateIndex', рд╕рддреНрдп)
рдХреЙрдиреНрд╕реНрдЯ рдпреВрдЬрд░рд╕реНрдХреЗрдорд╛ = рдирдИ рд╕реНрдХреАрдорд╛ ({
рдЕрдХреНрд╖рдо: {рдкреНрд░рдХрд╛рд░: рдмреВрд▓рд┐рдпрди, рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдЧрд▓рдд},
рднреВрдорд┐рдХрд╛рдПрдБ: {рдкреНрд░рдХрд╛рд░: рд╕рд░рдгреА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ['рд╕рд╣рд╛рдпрдХ']},
рдкрд╣рдЪрд╛рди: {рдкреНрд░рдХрд╛рд░: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЕрджреНрд╡рд┐рддреАрдп: рд╕рддреНрдп, рдЖрд╡рд╢реНрдпрдХ: рд╕рддреНрдп},
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: {рдкреНрд░рдХрд╛рд░: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЕрджреНрд╡рд┐рддреАрдп: рд╕рддреНрдп, рдЖрд╡рд╢реНрдпрдХ: рд╕рддреНрдп},
рдирд╛рдо: {рдкреНрд░рдХрд╛рд░: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЕрдкрд░рдХреЗрд╕: рд╕рддреНрдп, рдЖрд╡рд╢реНрдпрдХ: рд╕рддреНрдп},
рдкрд╛рд╕рд╡рд░реНрдб: {рдкреНрд░рдХрд╛рд░: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЖрд╡рд╢реНрдпрдХ: рд╕рддреНрдп},
рдЧреБрдкреНрдд: рд╕реНрдЯреНрд░рд┐рдВрдЧ,
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓: рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реНрдХреАрдорд╛,
рдкрддрд╛: рдкрддрд╛ рд╕реНрдХреАрдорд╛,
рд░рдЪрдирд╛ рддрд┐рдерд┐,
рд╕рдВрд╢реЛрдзрд┐рдд рддрд┐рдерд┐
}, {
рд╕рдВрдЧреНрд░рд╣: 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛'
})
userSchema.pre('save', function (рдЕрдЧрд▓рд╛) {
рдХреЙрдиреНрд╕реНрдЯ рдбреЙрдХреНрдЯрд░ = рдпрд╣
doc.created = рджрд┐рдирд╛рдВрдХ.рдЕрдм ()
doc.modified = рджрд┐рдирд╛рдВрдХ.рдЕрдм ()
doc.secret = uuidv4 ()
рдЕрдЧрд▓рд╛()
})
рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ = mongoose.model('User', userSchema)
````
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдореБрдЭреЗ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
@samuelcecilio рдЖрдк рдиреЗрд╡рд▓реЗ рдХреЛ рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣
const mongoose = require('mongoose')
mongoose.set('useCreateIndex', true);
//etc
module.exports = mongoose
рдФрд░ рдлрд┐рд░ рд╣рд░ рдЬрдЧрд╣ рдиреЗрд╡рд▓реЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд░реИрдкрд░ const mongoose = require('myMongoose')
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдм рдореИрдВ 5.2.8 рд╕реЗ рдЖрдЧреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдлрд┐рд░ рднреА рдореБрдЭреЗ рд╕рднреА рдореМрдЬреВрджрд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред models
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдореИрдВ require ('mongoose')
рдХреЛ require('myMongoose')
рд╕реЗ рдмрджрд▓ рджреВрдВрдЧрд╛ред рд╡рд╣реА app.js
рдФрд░ bin/www
рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред
рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: mongoose
рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореБрдЭреЗ mongoose.set ('useCreateIndex', true)
рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдпрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдЧрд╛, рдореЛрдВрдЧреЛ, рдиреЛрдб, рдЖрджрд┐ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП ...?
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡реИрд╕рд╛ рд╣реА рд░рд╣реЗрдЧрд╛ рдЬреИрд╕рд╛ рдЕрднреА рд╣реИ ( рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд╣реАрдВ ) рдиреЗрд╡рд▓реЗ рдХреЗ рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг (рдпрд╛рдиреА 6.0.0 ) рддрдХред
рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ mongoose.set('useCreateIndex', true)
рдХреЛ рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ require('mongoose')
рд╣реИред рдореИрдВ рдПрдХ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ ('./myMongoose')
рдпрд╛ ('./mongoose-custom')
ред рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?
рдХреНрдпрд╛ рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдореБрджреНрджрд╛ рд╣реИ?
рдореЙрдбрд▓ рдШреЛрд╖рдгрд╛рдУрдВ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ mongoose.set('useCreateIndex', true)
рдЬреЛрдбрд╝рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЗрд╕реЗ connect
рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рднреА рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
@samuelcecilio @bricss рд╕рд╣рдорддред рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред
рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА mongoose.model() рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ mongoose.set('useCreateIndex', true) рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЙрдбрд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рд╕рдВрд╕реНрдХрд░рдг 5.2.13 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдмрдВрдж рд╣реЛ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП? рдзрдиреНрдпрд╡рд╛рдж
javascript
mongoose.connect(config.dbUri, {
useCreateIndex: true,
useNewUrlParser: true
})
bash
the options [useCreateIndex] is not supported
server: listening on port 3000 +0ms
mongo: Connected +34ms
(node:18457) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
@samuelcecilio useCreateIndex
рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЖрдк mongoose.model()
(рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ) рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ $# mongoose.set('useCreateIndex', true);
1$#$ рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ mongoose.model рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП mongoose.set()
ред рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде 5.2.13 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмрд┐рди/www рдлрд╝рд╛рдЗрд▓ рдореЗрдВ mongoose.set('useCreateIndex', true)
рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рдорд╛рд░реНрдЧ рдореЗрдВ рдирд╣реАрдВ ред рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж рдФрд░ рдЕрдиреНрдп рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ 5.2.13 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реА db.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╣реИ:
// Create the database connection
mongoose.connect(encodeMongoURI(dbURI), options);
mongoose.set('useCreateIndex', true);
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рд▓рд┐рдкрд┐ рдореЗрдВ рдореЗрд░рд╛ рдореЛрдВрдЧреЛ рдХрдиреЗрдХреНрд╢рди рд╣реИред рдЗрд╕ рддрд░рд╣ рдореИрдВ рд╕рд┐рд░реНрдл mongoose.set('useCreateIndex', true) рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдВрдЧреЛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗред рдлрд┐рд░ рдЗрд╕реЗ рдореЗрд░реА рдХрд┐рд╕реА рднреА рдореЙрдбрд▓ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
@LucHighwalker рдХрд╛ рд╕реБрдЭрд╛рд╡ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдк рдЗрди рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ mongoose.connect()
рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд░рдЦрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдВрддрд░ рд╣реИ?
mongoose.connect(encodeMongoURI(dbURI), options);
mongoose.set('useCreateIndex', true);
рддрдерд╛
mongoose.set('useCreateIndex', true);
mongoose.connect(encodeMongoURI(dbURI), options);
? рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ 5.2.17 . рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ
mongoose.connect(config.dbUri, {
useCreateIndex: true,
useNewUrlParser: true
})
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @ рдкреНрд░рдХрд╛рд░/рдореЛрдВрдЧреЛрд╕ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ (рдЕрднреА рддрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
mongoose.connect(url, {
useNewUrlParser: true,
autoIndex: false
})
@Dionesio рдХреЗ рдЬрд╡рд╛рдм рдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдЪрд╛рд▓ рдЪрд▓реАред рдзрдиреНрдпрд╡рд╛рдж!
mongoose.connect("mongodb://localhost:27017/test", {useNewUrlParser: true});
mongoose.set ('useCreateIndex', рд╕рдЪ);
рдЗрд╕рдиреЗ рдореЗрд░реА рд╕рднреА рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред
@samuelcecilio рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ useCreateIndex рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреНрд▓реА рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рд░реВрдЯ рдореЗрдВ useCreateIndex рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var express = require('express'); var router = express.Router(); const mongoose = require('mongoose'); mongoose.set('useCreateIndex', true); const Test = mongoose.model('test', { name: {type: String, unique: true }}); /* GET home page. */ router.get('/', function(req, res, next) { Test.create({ name: 'billy' }).then((doc) => { return res.status(200).json({ done: true, test: doc.id }); }).catch((e) => { return res.status(500).json({ err: e }); }); }); module.exports = router;
рдЗрдВрдбреЗрдХреНрд╕ рд░реВрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ рдореБрдЭреЗ рдорд┐рд▓рд╛:
[nodemon] starting `node bin/www` version: 5.2.10 (node:17042) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
рдореБрдЭреЗ рдорд┐рд▓реЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
[nodemon] starting `node bin/www` version: 5.2.10 ^C
рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд┐рди/www рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреЗрд╡рд▓ рдЗрд╕реЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реА рд╕рдлрд▓ рд░рд╣рд╛ред
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХрд░реНрд▓рд┐рдВрдЧ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ
~>: curl localhost:3000/ {"done":true,"test":"5b84a4e13ec72e4352475426"}~>: ~>:
рдзрдиреНрдпрд╡рд╛рдж - mongoose.set ('useCreateIndex', true) рдЬреЛрдбрд╝рдирд╛; рдореЗрд░рд╛ рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рдмрд╣рд┐рд╖реНрдХрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рджреЗрдЦреЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдВрд╕реНрдХрд░рдг 5.2.10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдмрдВрдж рдХрд░ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП?
js mongoose.connect(config.dbUri, { useCreateIndex: true, useNewUrlParser: true })
рдпрд╛
js mongoose.set('useCreateIndex', true) mongoose.connect(config.dbUri, { useNewUrlParser: true })
рдпрд╣ рдпрд╣рд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛)