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

MongoDB เป็นฐานข้อมูล NoSQL ที่ปรับขนาดได้และมีประสิทธิภาพสูง รองรับภาษาจำนวนมากและแพลตฟอร์มการพัฒนาแอปพลิเคชัน คำถามเกี่ยวกับการดูแลเซิร์ฟเวอร์สามารถสอบถามได้ที่ https://dba.stackexchange.com

7
MySQL กับ MongoDB 1,000 อ่าน
ฉันตื่นเต้นเป็นอย่างมากกับ MongoDb และได้ทำการทดสอบเมื่อไม่นานมานี้ ฉันมีตารางที่เรียกว่าโพสต์ใน MySQL ที่มีประมาณ 20 ล้านบันทึกการจัดทำดัชนีเฉพาะในเขตข้อมูลที่เรียกว่า 'id' ฉันต้องการเปรียบเทียบความเร็วกับ MongoDB และฉันทดสอบซึ่งจะได้รับและพิมพ์ 15 รายการแบบสุ่มจากฐานข้อมูลขนาดใหญ่ของเรา ฉันใช้แบบสอบถามประมาณ 1,000 ครั้งสำหรับ mysql และ MongoDB และฉันประหลาดใจที่ฉันไม่ได้สังเกตเห็นความแตกต่างของความเร็ว บางที MongoDB อาจเร็วขึ้น 1.1 เท่า มันน่าผิดหวังมาก มีบางอย่างที่ฉันทำผิดหรือเปล่า? ฉันรู้ว่าการทดสอบของฉันไม่สมบูรณ์แบบ แต่ MySQL นั้นเทียบเท่ากับ MongoDb เมื่อพูดถึงการอ่านงานบ้านที่เข้มข้น บันทึก: ฉันมี dual core + (2 กระทู้) i7 cpu และ 4GB ram ฉันมีพาร์ติชั่นบน MySQL จำนวน 20 …

25
วิธีการส่งออกคอลเลกชันทั้งหมดใน MongoDB?
ฉันต้องการส่งออกคอลเลกชันทั้งหมดใน MongoDB โดยคำสั่ง: mongoexport -d dbname -o Mongo.json ผลลัพธ์คือ: ไม่ได้ระบุคอลเล็กชัน! คู่มือบอกว่าถ้าคุณไม่ได้ระบุคอลเลกชันคอลเลกชันทั้งหมดจะถูกส่งออก อย่างไรก็ตามทำไมมันไม่ทำงาน http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection รุ่น MongoDB ของฉันคือ 2.0.6
319 mongodb  export 

14
วิธีลบเขตข้อมูลอย่างสมบูรณ์จากเอกสาร MongoDB?
{ name: 'book', tags: { words: ['abc','123'], lat: 33, long: 22 } } สมมติว่านี่เป็นเอกสาร ฉันจะลบ " words" ออกจากเอกสารทั้งหมดในคอลเล็กชันนี้ได้อย่างไร ฉันต้องการให้เอกสารทั้งหมดไม่มี " words": { name: 'book', tags: { lat: 33, long: 22 } }


3
ฟิลด์“ __v” ใน Mongoose คืออะไร
ฉันใช้Mongooseเวอร์ชัน 3 กับMongoDBเวอร์ชัน 2.2 ฉันสังเกตเห็นว่า__vเขตข้อมูลเริ่มปรากฏในMongoDBเอกสารของฉัน มันเกี่ยวกับเวอร์ชันหรือไม่? มันใช้งานอย่างไร?

8
วิธีในการปรับใช้ data versioning ใน MongoDB
คุณสามารถแบ่งปันความคิดของคุณได้อย่างไรว่าคุณจะใช้การปรับรุ่นข้อมูลใน MongoDB อย่างไร (ฉันได้ถามคำถามที่คล้ายกันเกี่ยวกับคาสซานดราถ้าคุณมีความคิดใดที่ดีกว่าสำหรับที่กรุณาแบ่งปัน) สมมติว่าฉันต้องการบันทึกเวอร์ชันในสมุดที่อยู่ธรรมดา (บันทึกสมุดที่อยู่จะถูกจัดเก็บเป็นวัตถุแบบ json แบบแบน) ฉันคาดหวังว่าประวัติศาสตร์: จะถูกใช้ไม่บ่อยนัก จะถูกใช้ทั้งหมดในครั้งเดียวเพื่อนำเสนอในแบบ "ไทม์แมชชีน" จะไม่มีรุ่นมากกว่าสองสามร้อยเป็นระเบียนเดียว ประวัติจะไม่หมดอายุ ฉันกำลังพิจารณาแนวทางต่อไปนี้: สร้างการรวบรวมวัตถุใหม่เพื่อเก็บประวัติของการบันทึกหรือการเปลี่ยนแปลงกับบันทึก มันจะเก็บวัตถุหนึ่งชิ้นต่อรุ่นโดยมีการอ้างอิงไปยังรายการสมุดที่อยู่ บันทึกดังกล่าวจะมีลักษณะดังนี้: { '_id': 'รหัสใหม่', 'ผู้ใช้': user_id 'timestamp': การประทับเวลา 'address_book_id': 'id ของบันทึกสมุดรายชื่อ' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ... } } วิธีการนี้สามารถแก้ไขเพื่อเก็บอาร์เรย์ของเวอร์ชันต่อเอกสาร แต่นี่ดูเหมือนจะช้ากว่าโดยไม่มีข้อได้เปรียบใด ๆ จัดเก็บรุ่นเป็นวัตถุที่เป็นอนุกรม (JSON) ที่แนบมากับรายการสมุดที่อยู่ ฉันไม่แน่ใจว่าจะแนบวัตถุดังกล่าวกับเอกสาร MongoDB ได้อย่างไร อาจเป็นชุดของสตริง ( ถ่ายแบบมาจาก Simple Documenting …


11
ฉันจะจัดการการเชื่อมต่อ MongoDB ในเว็บแอปพลิเคชัน Node.js ได้อย่างไร
ฉันใช้ไดรเวอร์node-mongodb-nativeกับ MongoDB เพื่อเขียนเว็บไซต์ ฉันมีคำถามบางอย่างเกี่ยวกับวิธีจัดการการเชื่อมต่อ: มีการใช้การเชื่อมต่อ MongoDB เพียงครั้งเดียวสำหรับคำขอทั้งหมดหรือไม่ มีปัญหาเรื่องประสิทธิภาพหรือไม่ ถ้าไม่ฉันสามารถตั้งค่าการเชื่อมต่อทั่วโลกเพื่อใช้ในแอปพลิเคชันทั้งหมดได้หรือไม่ หากไม่เป็นเช่นนั้นจะดีหรือไม่ถ้าฉันเปิดการเชื่อมต่อใหม่เมื่อมีคำขอมาถึงและปิดเมื่อจัดการคำขอ การเปิดและปิดการเชื่อมต่อมีราคาแพงหรือไม่ ฉันควรใช้พูลการเชื่อมต่อส่วนกลางหรือไม่ ฉันได้ยินว่าคนขับมีพูลการเชื่อมต่อดั้งเดิม มันเป็นทางเลือกที่ดีหรือไม่? หากฉันใช้พูลการเชื่อมต่อควรใช้การเชื่อมต่อจำนวนเท่าใด มีสิ่งอื่นใดอีกที่ฉันควรสังเกต

10
NoSQL (MongoDB) vs Lucene (หรือ Solr) เป็นฐานข้อมูลของคุณ
ด้วยความเคลื่อนไหว NoSQL ที่เพิ่มขึ้นตามฐานข้อมูลที่ใช้เอกสารฉันได้ดู MongoDB เมื่อเร็ว ๆ นี้ ฉันได้สังเกตเห็นความคล้ายคลึงกันที่น่าทึ่งกับวิธีการปฏิบัติต่อรายการเป็น "เอกสาร" เช่นเดียวกับ Lucene (และผู้ใช้ของ Solr) ดังนั้นคำถาม: ทำไมคุณต้องการใช้ NoSQL (MongoDB, Cassandra, CouchDB ฯลฯ ) เหนือ Lucene (หรือ Solr) เป็น "ฐานข้อมูล" ของคุณ? สิ่งที่ฉัน (และฉันแน่ใจว่าคนอื่นกำลังมองหา) ในคำตอบคือการเปรียบเทียบลึกของพวกเขา มาข้ามการอภิปรายฐานข้อมูลเชิงสัมพันธ์กันไปพร้อม ๆ กันเพราะมันมีจุดประสงค์ที่แตกต่างกัน Lucene ให้ประโยชน์อย่างมากเช่นการค้นหาที่มีประสิทธิภาพและระบบน้ำหนัก ไม่ต้องพูดถึงแง่มุมใน Solr (ซึ่ง Solr จะถูกรวมเข้ากับ Lucene เร็ว ๆ นี้ใช่!) คุณสามารถใช้เอกสาร Lucene เพื่อจัดเก็บ ID และเข้าถึงเอกสารเช่น …

4
“ ทำต่อ” ในเคอร์เซอร์ forEach ()
ฉันกำลังสร้างแอพโดยใช้ meteor.js และ MongoDB และฉันมีคำถามเกี่ยวกับ cursor.forEach () ฉันต้องการตรวจสอบเงื่อนไขบางอย่างในตอนต้นของแต่ละการวนซ้ำแต่ละครั้งแล้วข้ามองค์ประกอบถ้าฉันไม่ต้องทำการดำเนินการกับมันเพื่อที่ฉันจะได้ประหยัดเวลา นี่คือรหัสของฉัน: // Fetch all objects in SomeElements collection var elementsCollection = SomeElements.find(); elementsCollection.forEach(function(element){ if (element.shouldBeProcessed == false){ // Here I would like to continue to the next element if this one // doesn't have to be processed }else{ // This part should …

29
แสดงมุมมอง HTML พื้นฐานหรือไม่
ฉันมีแอพพื้นฐาน node.js ที่ฉันพยายามจะลงมือทำโดยใช้เฟรมเวิร์ก Express ฉันมีviewsโฟลเดอร์ที่ฉันมีindex.htmlไฟล์ แต่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อโหลดเว็บเบราว์เซอร์ ข้อผิดพลาด: ไม่พบโมดูล 'html' ด้านล่างเป็นรหัสของฉัน var express = require('express'); var app = express.createServer(); app.use(express.staticProvider(__dirname + '/public')); app.get('/', function(req, res) { res.render('index.html'); }); app.listen(8080, '127.0.0.1') ฉันหายไปนี่อะไร

12
ฉันจะค้นหาวัตถุโดย ObjectId ของมันในคอนโซล mongo ได้อย่างไร
ฉันพบคำถามนี้ตอบสำหรับ C # และ Perl แต่ไม่ใช่ในอินเทอร์เฟซดั้งเดิม ฉันคิดว่ามันจะทำงาน: db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } ) แบบสอบถามไม่มีผลลัพธ์ ฉันพบ 4ecbe7f9e8c1c9092c000027 โดยทำdb.theColl.find()และคว้า ObjectId มีวัตถุหลายพันรายการในคอลเลกชันนั้น ฉันได้อ่านหน้าทั้งหมดที่ฉันสามารถหาได้ในเว็บไซต์ mongodb.org และไม่พบมัน นี่เป็นเรื่องแปลกที่ต้องทำใช่ไหม มันค่อนข้างปกติสำหรับฉัน
265 mongodb 

10
พังพอน: findOneAndUpdate จะไม่ส่งคืนเอกสารที่อัปเดต
ด้านล่างเป็นรหัสของฉัน var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); var Cat = mongoose.model('Cat', { name: String, age: {type: Number, default: 20}, create: {type: Date, default: Date.now} }); Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){ if(err){ console.log("Something wrong when updating data!"); } console.log(doc); }); ฉันมีบันทึกอยู่ในฐานข้อมูล mongo ของฉันแล้วและฉันต้องการเรียกใช้รหัสนี้เพื่ออัปเดตชื่อที่อายุ 17 แล้วพิมพ์ผลออกมาในตอนท้ายของรหัส อย่างไรก็ตามทำไมฉันยังได้รับผลลัพธ์เดียวกันจากคอนโซล (ไม่ใช่ชื่อที่แก้ไข) แต่เมื่อฉันไปที่บรรทัดคำสั่ง mongo db และพิมพ์ " db.cats.find();" …

6
วิธีพิมพ์เอกสารมากกว่า 20 รายการ (เอกสาร) ในเชลล์ของ MongoDB?
db.foo.find().limit(300) จะไม่ทำมัน มันยังพิมพ์ออกมาเพียง 20 เอกสาร db.foo.find().toArray() db.foo.find().forEach(printjson) ทั้งสองจะพิมพ์มุมมองที่ขยายออกมากของเอกสารแต่ละฉบับแทนที่จะเป็นเวอร์ชัน 1 บรรทัดสำหรับfind():
253 mongodb 

4
mongodb / พังพอน findMany - ค้นหาเอกสารทั้งหมดที่มี ID ที่แสดงรายการในอาร์เรย์
ฉันมีชุดของ _ids และฉันต้องการให้เอกสารทั้งหมดสอดคล้องกันวิธีที่ดีที่สุดในการทำคืออะไร สิ่งที่ต้องการ ... // doesn't work ... of course ... model.find({ '_id' : [ '4ed3ede8844f0f351100000c', '4ed3f117a844e0471100000d', '4ed3f18132f50c491100000e' ] }, function(err, docs){ console.log(docs); }); อาร์เรย์อาจมี _ids หลายร้อยรายการ

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