คำถามติดแท็ก mongoose

Mongoose เป็นเครื่องมือสร้างแบบจำลองวัตถุ MongoDB หรือ ODM (Object Document Mapper) เขียนด้วย JavaScript และออกแบบมาเพื่อทำงานในสภาพแวดล้อมแบบอะซิงโครนัส

8
วิธีการนับแบบจำลองพังพอนทั้งหมด?
ฉันจะทราบจำนวนโมเดลที่บันทึกข้อมูลได้อย่างไร มีวิธีการหนึ่งModel.count()แต่ดูเหมือนจะไม่ได้ผล var db = mongoose.connect('mongodb://localhost/myApp'); var userSchema = new Schema({name:String,password:String}); userModel =db.model('UserList',userSchema); var userCount = userModel.count('name'); userCountเป็น Object วิธีcountไหนที่เรียกว่าได้ของจริง ขอบคุณ

6
แบบสอบถามพังพอนโดยที่ค่าไม่เป็นโมฆะ
กำลังทำแบบสอบถามต่อไปนี้: Entrant .find enterDate : oneMonthAgo confirmed : true .where('pincode.length > 0') .exec (err,entrants)-> ฉันกำลังทำ where clause อย่างถูกต้องหรือไม่? ฉันต้องการเลือกเอกสารที่pincodeไม่เป็นโมฆะ
104 mongodb  mongoose 

4
mongoDB / mongoose: ไม่ซ้ำกันถ้าไม่ใช่ null
ผมสงสัยว่าถ้ามีวิธีที่จะบังคับให้เข้าคอลเลกชันที่ไม่ซ้ำกันแต่ถ้าเข้าไม่ได้เป็นโมฆะ e ตัวอย่าง schema: var UsersSchema = new Schema({ name : {type: String, trim: true, index: true, required: true}, email : {type: String, trim: true, index: true, unique: true} }); "อีเมล" ในกรณีนี้ไม่จำเป็นต้องใช้ แต่หากบันทึก "อีเมล" ไว้ฉันต้องการให้แน่ใจว่ารายการนี้ไม่ซ้ำกัน (ในระดับฐานข้อมูล) ดูเหมือนว่ารายการที่ว่างเปล่าจะได้รับค่าเป็น "null" ดังนั้นทุกรายการที่ไม่มีอีเมลล่มด้วยตัวเลือก "ไม่ซ้ำกัน" (หากมีผู้ใช้รายอื่นที่ไม่มีอีเมล) ตอนนี้ฉันกำลังแก้ปัญหาในระดับแอปพลิเคชัน แต่อยากจะบันทึกแบบสอบถามฐานข้อมูลนั้น ขอบคุณ

3
พังพอน - exec function ทำอะไร?
ฉันเจอโค้ดพังพอนชิ้นหนึ่งที่มีเคียวรี findOne และฟังก์ชัน exec () ฉันไม่เคยเห็นวิธีการนั้นใน Javascript มาก่อน? มันทำอะไรกันแน่?

12
การอัปโหลดภาพโดยใช้ Node.js, Express และ Mongoose
โปรดพิจารณาคำตอบที่ใหม่กว่าซึ่งมีข้อมูลที่ทันสมัยกว่าเนื่องจากมีการเปลี่ยนแปลงในช่วงหลายปีที่ผ่านมา! เนื่องจากไลบรารี Node.js ใหม่จำนวนมากถูกแสดงอย่างรวดเร็วล้าสมัยและมีตัวอย่างค่อนข้างน้อยฉันต้องการถามเกี่ยวกับการอัปโหลดภาพโดยใช้: โหนด js (v0.4.1) ด่วน (1.0.7) พังพอน (1.1.0). คนอื่นทำได้อย่างไร ฉันพบว่าโหนดน่ากลัวแต่ฉันยังใหม่กับการอัปโหลดภาพโดยทั่วไปดังนั้นฉันจึงต้องการเรียนรู้สิ่งต่างๆทั่วไปและวิธีการทำเช่นนั้นโดยใช้ Node.js และ Express

8
พังพอน: รับรายชื่อผู้ใช้ทั้งหมด
ฉันได้พยายามใช้ Mongoose เพื่อส่งรายชื่อผู้ใช้ทั้งหมดดังนี้: server.get('/usersList', function(req, res) { var users = {}; User.find({}, function (err, user) { users[user._id] = user; }); res.send(users); }); แน่นอนres.send(users);กำลังจะส่ง{}ซึ่งไม่ใช่สิ่งที่ฉันต้องการ มีfindทางเลือกอื่นที่มีความหมายต่างกันเล็กน้อยที่ฉันสามารถทำสิ่งต่อไปนี้ได้หรือไม่? server.get('/usersList', function(req, res) { User.find({}, function (err, users) { res.send(users); }); }); โดยพื้นฐานแล้วฉันต้องการให้ดำเนินการเรียกกลับก็ต่อเมื่อผู้ใช้ทั้งหมดถูกดึงข้อมูลจากฐานข้อมูลแล้ว

10
พังพอนเติมหลังจากบันทึก
ฉันไม่สามารถเติมข้อมูลในช่องผู้สร้างด้วยตนเองหรือโดยอัตโนมัติในวัตถุที่บันทึกใหม่ ... วิธีเดียวที่ฉันจะพบคือการสืบค้นวัตถุที่ฉันมีอยู่แล้วซึ่งฉันไม่ต้องการทำอีกครั้ง นี่คือการตั้งค่า: var userSchema = new mongoose.Schema({ name: String, }); var User = db.model('User', userSchema); var bookSchema = new mongoose.Schema({ _creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, description: String, }); var Book = db.model('Book', bookSchema); นี่คือที่มาดึงผม var user = new User(); user.save(function(err) { var book = new Book({ …

14
จะวางฐานข้อมูลด้วยพังพอนได้อย่างไร?
ฉันกำลังเตรียมสคริปต์การสร้างฐานข้อมูลใน Node.js และ Mongoose ฉันจะตรวจสอบได้อย่างไรว่ามีฐานข้อมูลอยู่แล้วและถ้าเป็นเช่นนั้นให้วาง (ลบ) โดยใช้ Mongoose ฉันไม่สามารถหาวิธีที่จะทิ้งพังพอนได้

22
เอ็นจิ้นการค้นหาและตรวจสอบเซิร์ฟเวอร์เลิกใช้งานแล้ว
ฉันใช้ Mongoose กับแอป Node.js ของฉันและนี่คือการกำหนดค่าของฉัน: mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false }).then(()=>{ console.log(`connection to database established`) }).catch(err=>{ console.log(`db error ${err.message}`); process.exit(-1) }) แต่ในคอนโซลยังเตือนฉัน: DeprecationWarning: เอ็นจิ้นการค้นหาและการตรวจสอบเซิร์ฟเวอร์ปัจจุบันเลิกใช้งานแล้วและจะถูกลบออกในเวอร์ชันอนาคต ในการใช้เครื่องมือค้นหาและตรวจสอบเซิร์ฟเวอร์ใหม่ให้ส่งตัวเลือก {useUnifiedTopology: true} ไปยังตัวสร้าง MongoClient อะไรคือปัญหา? ฉันไม่เคยใช้useUnifiedTopologyมาก่อน แต่ตอนนี้มันปรากฏในคอนโซล ฉันเพิ่มมันลงใน config แล้ว แต่มันก็ยังเตือนฉันทำไม? MongoClientฉันไม่ได้ใช้ แก้ไข ดังที่ Felipe Plets ตอบว่ามีปัญหาในพังพอนและพวกเขาได้แก้ไขข้อบกพร่องนี้ในเวอร์ชันต่อมา ดังนั้นคุณสามารถแก้ปัญหาได้โดยการอัปเดตเวอร์ชันพังพอน


2
เหตุใดคุณจึงไม่สามารถแก้ไขข้อมูลที่ส่งคืนโดย Mongoose Query (เช่น findById)
เมื่อฉันพยายามเปลี่ยนส่วนใดส่วนหนึ่งของข้อมูลที่ส่งคืนโดย Mongoose Query ก็ไม่มีผลใด ๆ เมื่อวานนี้ฉันพยายามคิดออกมาประมาณ 2 ชั่วโมงโดยมี_.clone()s ทุกชนิดโดยใช้ตัวแปรพื้นที่จัดเก็บชั่วคราว ฯลฯ ในที่สุดเมื่อฉันกำลังจะบ้าฉันก็พบวิธีแก้ปัญหา ฉันจึงคิดว่ามีใครบางคนในอนาคต (fyuuuture!) อาจมีปัญหาในการบันทึก Survey.findById(req.params.id, function(err, data){ var len = data.survey_questions.length; var counter = 0; _.each(data.survey_questions, function(sq){ Question.findById(sq.question, function(err, q){ sq.question = q; //has no effect if(++counter == len) { res.send(data); } }); }); });
95 node.js  mongoose 

13
Mongoose.js: ค้นหาผู้ใช้ด้วยค่าชื่อผู้ใช้ LIKE
ฉันต้องการค้นหาผู้ใช้ใน mongoDb โดยมองหาผู้ใช้ที่เรียกว่า value ปัญหาเกี่ยวกับ: username: 'peter' คือฉันไม่พบถ้าชื่อผู้ใช้คือ "Peter" หรือ "PeTER" .. หรืออะไรทำนองนั้น ผมอยากทำเหมือน sql SELECT * FROM users WHERE username LIKE 'peter' หวังว่าพวกคุณจะได้รับสิ่งที่ฉันขอ? ย่อ: 'ค่า LIKE ของฟิลด์' ใน mongoose.js / mongodb

23
พังพอนดัชนีเฉพาะไม่ทำงาน!
ฉันกำลังพยายามให้ MongoDB ตรวจพบค่าที่ซ้ำกันตามดัชนี ฉันคิดว่าสิ่งนี้เป็นไปได้ใน MongoDB แต่ดูเหมือนว่าสิ่งที่ห่อหุ้มพังพอนจะแตก ดังนั้นสำหรับสิ่งนี้: User = new Schema ({ email: {type: String, index: {unique: true, dropDups: true}} }) ฉันสามารถบันทึกผู้ใช้ 2 คนด้วยอีเมลเดียวกัน ยี้. มีการแสดงปัญหาเดียวกันที่นี่: https://github.com/LearnBoost/mongoose/issues/56แต่เธรดนั้นเก่าและไม่มีที่ไหนเลย ตอนนี้ฉันโทรไปที่ฐานข้อมูลด้วยตนเองเพื่อค้นหาผู้ใช้ การโทรนั้นไม่แพงเนื่องจากมีการจัดทำดัชนี "อีเมล" แต่ก็ยังเป็นการดีที่จะปล่อยให้มันถูกจัดการโดยกำเนิด ใครมีวิธีแก้ปัญหานี้หรือไม่?

10
พังพอนอัปเดตค่าในอาร์เรย์ของวัตถุ
มีวิธีอัพเดตค่าในออบเจ็กต์หรือไม่? { _id: 1, name: 'John Smith', items: [{ id: 1, name: 'item 1', value: 'one' },{ id: 2, name: 'item 2', value: 'two' }] } สมมติว่าฉันต้องการอัปเดตชื่อและรายการค่าสำหรับรายการที่ id = 2; ฉันได้ลองใช้ w / พังพอนต่อไปนี้: var update = {name: 'updated item2', value: 'two updated'}; Person.update({'items.id': 2}, {'$set': {'items.$': update}}, function(err) { …

15
พังพอนทาง typescript …?
กำลังพยายามใช้แบบจำลองพังพอนใน typescript การกำจัดสิ่งสกปรกใน Google ได้เปิดเผยเฉพาะแนวทางแบบผสมผสาน (รวม JS และ TS) เราจะดำเนินการอย่างไรเกี่ยวกับการใช้คลาส User บนแนวทางที่ค่อนข้างไร้เดียงสาของฉันโดยไม่มี JS? ต้องการ IUserModel โดยไม่ต้องมีสัมภาระ import {IUser} from './user.ts'; import {Document, Schema, Model} from 'mongoose'; // mixing in a couple of interfaces interface IUserDocument extends IUser, Document {} // mongoose, why oh why '[String]' // TODO: investigate out why …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.