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

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

8
รับบันทึกล่าสุดจากคอลเลกชัน mongodb
ฉันต้องการทราบบันทึกล่าสุดในคอลเล็กชัน ต้องทำอย่างไร? หมายเหตุ: ฉันรู้ว่าการสืบค้นบรรทัดคำสั่งต่อไปนี้ใช้ได้ผล: 1. db.test.find().sort({"idate":-1}).limit(1).forEach(printjson); 2. db.test.find().skip(db.test.count()-1).forEach(printjson) โดยที่ idate มีการเพิ่มการประทับเวลา ปัญหาคือการรวบรวมอีกต่อไปคือเวลาในการเรียกคืนข้อมูลและคอลเล็กชัน 'ทดสอบ' ของฉันใหญ่มาก ฉันต้องการแบบสอบถามที่ตอบสนองเวลาคงที่ หากมีแบบสอบถามบรรทัดคำสั่ง mongodb ที่ดีกว่าโปรดแจ้งให้เราทราบ

1
พังพอน findByIdAndUpdate ไม่ส่งคืนโมเดลที่ถูกต้อง
ฉันมีปัญหาที่ฉันไม่เคยเห็นมาก่อนโดยที่พังพอน findByIdAndUpdate ไม่ส่งคืนโมเดลที่ถูกต้องในการติดต่อกลับ นี่คือรหัส: var id = args._id; var updateObj = {updatedDate: Date.now()}; _.extend(updateObj, args); Model.findByIdAndUpdate(id, updateObj, function(err, model) { if (err) { logger.error(modelString +':edit' + modelString +' - ' + err.message); self.emit('item:failure', 'Failed to edit ' + modelString); return; } self.emit('item:success', model); }); เอกสารต้นฉบับใน db มีลักษณะดังนี้: { _id: 1234 …

11
ลบคีย์จากเอกสาร MongoDB โดยใช้ Mongoose
ฉันใช้Mongoose Library เพื่อเข้าถึง MongoDB ด้วย node.js มีวิธีลบคีย์ออกจากเอกสารหรือไม่? กล่าวคือไม่เพียงแค่ตั้งค่าเป็น null แต่ลบออก? User.findOne({}, function(err, user){ //correctly sets the key to null... but it's still present in the document user.key_to_delete = null; // doesn't seem to have any effect delete user.key_to_delete; user.save(); });


3
อ้างถึงสคีมาอื่นในพังพอน
ถ้าฉันมีสองสคีมาเช่น: var userSchema = new Schema({ twittername: String, twitterID: Number, displayName: String, profilePic: String, }); var User = mongoose.model('User') var postSchema = new Schema({ name: String, postedBy: User, //User Model Type dateCreated: Date, comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}], }); ฉันพยายามเชื่อมโยงเข้าด้วยกันเหมือนตัวอย่างด้านบน แต่คิดไม่ออกว่าจะทำอย่างไร ในที่สุดถ้าฉันสามารถทำอะไรแบบนี้ได้มันจะทำให้ชีวิตของฉันง่ายมาก var profilePic = Post.postedBy.profilePic

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
$ ค้นหาบน ObjectId ในอาร์เรย์
อะไรคือไวยากรณ์สำหรับการค้นหา $ บนฟิลด์ที่เป็นอาร์เรย์ของ ObjectIds แทนที่จะเป็น ObjectId เดียว ตัวอย่างเอกสารคำสั่งซื้อ: { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ] } แบบสอบถามไม่ทำงาน: db.orders.aggregate([ { $lookup: { from: "products", localField: "products", foreignField: "_id", as: "productObjects" } } ]) ผลลัพธ์ที่ต้องการ { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ], productObjects: [ {<Car Object>}, …

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" ดังนั้นทุกรายการที่ไม่มีอีเมลล่มด้วยตัวเลือก "ไม่ซ้ำกัน" (หากมีผู้ใช้รายอื่นที่ไม่มีอีเมล) ตอนนี้ฉันกำลังแก้ปัญหาในระดับแอปพลิเคชัน แต่อยากจะบันทึกแบบสอบถามฐานข้อมูลนั้น ขอบคุณ

13
E: ไม่พบแพ็คเกจ mongodb-org
ฉันพยายามดาวน์โหลด mongodb และกำลังทำตามขั้นตอนในลิงค์นี้ แต่เมื่อฉันไปถึงขั้นตอน: sudo apt-get install -y mongodb-org ฉันได้รับข้อผิดพลาดต่อไปนี้: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mongodb-org //This is the error เหตุใดจึงเกิดขึ้นและมีวิธีแก้ไขหรือไม่?

6
MongoDB mongorestore ล้มเหลว: locale :: facet :: _ ชื่อ S_create_c_locale ไม่ถูกต้อง
ฉันสร้างดัมพ์ด้วย mongodump บนคอมพิวเตอร์ A (เซิร์ฟเวอร์ ubuntu 12.04) ฉันย้ายไปที่คอมพิวเตอร์ B (เซิร์ฟเวอร์ ubuntu 12.04) และพิมพ์ว่า: mongorestore -db db_name --drop db_dump_path ล้มเหลวและรายงาน: เชื่อมต่อกับ: 127.0.0.1 ยุติการเรียกหลังจากโยนอินสแตนซ์ของ 'std :: runtime_error' what (): locale :: facet :: _ S_create_c_locale ชื่อไม่ถูกต้องถูก ยกเลิก ฉันเคยทำสำเร็จมาก่อนและพฤติกรรมแปลก ๆ นี้ไม่เคยเกิดขึ้น ฉันต้องทำอย่างไรเพื่อแก้ไขปัญหานี้

2
MongoDB เรียงลำดับระเบียนอย่างไรเมื่อไม่มีการระบุลำดับการจัดเรียง
เมื่อเราเรียกใช้แบบสอบถาม Mongo find () โดยไม่ระบุลำดับการจัดเรียงใด ๆ ฐานข้อมูลภายในใช้อะไรในการจัดเรียงผลลัพธ์ ตามเอกสารในเว็บไซต์ mongo : เมื่อดำเนินการ find () โดยไม่มีพารามิเตอร์ฐานข้อมูลจะส่งคืนอ็อบเจ็กต์ตามลำดับธรรมชาติไปข้างหน้า สำหรับตารางมาตรฐานคำสั่งธรรมชาติไม่ได้มีประโยชน์อย่างยิ่งเนื่องจากแม้ว่าคำสั่งดังกล่าวมักจะใกล้เคียงกับลำดับการแทรก แต่ก็ไม่รับประกันว่าจะเป็น อย่างไรก็ตามสำหรับคอลเลกชันที่มีการต่อยอดจะรับประกันว่าลำดับตามธรรมชาติจะเป็นลำดับการแทรก สิ่งนี้จะมีประโยชน์มาก อย่างไรก็ตามสำหรับคอลเลกชันมาตรฐาน (คอลเลกชันที่ไม่ได้ต่อยอด) ฟิลด์ใดที่ใช้ในการเรียงลำดับผลลัพธ์ มันเป็นฟิลด์_idหรืออย่างอื่น? แก้ไข: โดยทั่วไปฉันเดาว่าสิ่งที่ฉันพยายามจะได้รับคือถ้าฉันดำเนินการค้นหาต่อไปนี้: db.collection.find({"x":y}).skip(10000).limit(1000); ในเวลาสองจุดที่แตกต่างกัน: t1และt2ฉันจะได้รับชุดผลลัพธ์ที่ต่างกันหรือไม่: เมื่อไม่มีการเขียนเพิ่มเติมระหว่าง t1 & t2? เมื่อมีการเขียนใหม่ระหว่าง t1 และ t2? มีดัชนีใหม่ที่ถูกเพิ่มระหว่าง t1 & t2? ฉันได้ทำการทดสอบในฐานข้อมูลชั่วคราวและผลลัพธ์ที่ได้ก็เหมือนกัน ( ใช่ ) สำหรับทั้ง 3 กรณี - แต่ฉันต้องการความแน่ใจและฉันมั่นใจว่ากรณีการทดสอบของฉันไม่ละเอียดถี่ถ้วน
103 mongodb 

6
ตัวดำเนินการ $ คลี่คลายใน MongoDB คืออะไร?
นี่เป็นวันแรกของฉันกับ MongoDB ดังนั้นโปรดไปง่าย ๆ กับฉัน :) ฉันไม่เข้าใจ$unwindโอเปอเรเตอร์อาจเป็นเพราะภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน db.article.aggregate( { $project : { author : 1 , title : 1 , tags : 1 }}, { $unwind : "$tags" } ); ผู้ดำเนินโครงการเป็นสิ่งที่ฉันเข้าใจฉันคิดว่า (มันก็เหมือนSELECTไม่ใช่เหรอ) แต่แล้ว$unwind(อ้าง) ผลตอบแทนเอกสารหนึ่งสำหรับสมาชิกของอาร์เรย์คลายภายในเอกสารแหล่งที่มาทุกคน เป็นเช่นนี้JOINหรือไม่? ถ้าใช่วิธีที่ผลมาจาก$project(มี_id, author, titleและtagsสาขา) สามารถเทียบกับtagsอาร์เรย์? หมายเหตุ : ฉันได้นำตัวอย่างมาจากเว็บไซต์ MongoDB ฉันไม่ทราบโครงสร้างของtagsอาร์เรย์ ฉันคิดว่ามันเป็นชื่อแท็กที่เรียบง่าย

2
ฉันจะใช้โอเปอเรเตอร์ 'ไม่ชอบ' ใน MongoDB ได้อย่างไร
ฉันสามารถใช้ SQL Likeประกอบการใช้pymongo, db.test.find({'c':{'$regex':'ttt'}}) แต่ฉันจะใช้Not LikeOperator ได้อย่างไร? ฉันเหนื่อย db.test.find({'c':{'$not':{'$regex':'ttt'}}) แต่มีข้อผิดพลาด: OperationFailure: $ not ไม่สามารถมี regex ได้

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