2011-04-09 15 views
21

मैं अपना पहला टेस्ट ऐप node.js/mongoDB/mongoose पर शुरू करता हूं, यह एक बहुत ही सरल ऐप है जिसका लक्ष्य डीबी में रिकॉर्ड को क्रेट करना और उन्हें पुनर्प्राप्त करना है।decode/node.js के लिए mongoose में फ़्लोट

var Car = new Schema({ 
    brand : String, 
    speed : Number, 
    date : { type: Date, default: Date.now } 
}); 

यह ठीक काम कर रहा है, सिवाय इसके कि मैं पूर्णांक एक के बजाय गति के लिए एक नाव मूल्य प्रदान करने में सक्षम होना चाहते हैं:

मैं की तरह एक मॉडल बनाने के। मैंने दशमलव और फ्लोट करने का प्रयास किया लेकिन उनमें से कोई भी काम नहीं कर रहा है। मुझे प्रलेखन में भी नहीं मिला था।

कोई विचार?

+0

'var कार = नई कार ({ब्रांड:" ", गति: 0.5});' – skeggse

उत्तर

29

मैं mongoose और node.js से बिल्कुल परिचित नहीं हूं, लेकिन मैंने थोड़ा सा खोज किया है और पाया है कि फ्लोट मानों को संग्रहीत करने के लिए आपको Number प्रकार का उपयोग करना होगा। आप किसी भी फ्लोट वैल्यू को speed फ़ील्ड में स्टोर कर सकते हैं। Article

इस सहायता की आशा करें।

+0

बहुत बहुत धन्यवाद। लेकिन, इस लेख में, ऐसा लगता है कि यह एक और तरीका है, यानी एक फ्लोट को एक पूर्णांक में मजबूर करने के लिए, सही? क्षमा करें, मैं शायद चीज़ को गलत समझ सकता हूं। – Luc

+1

@Luc: बिल्कुल, एक पूर्णांक में तैरने के बारे में लेख में। लेकिन इसका मतलब यह है कि आप 'संख्या' प्रकार के साथ फ़ील्ड में फ्लोट वैल्यू स्टोर कर सकते हैं। इसलिए 'संख्या' प्रकार का उपयोग दोनों प्रकारों के लिए किया जाना चाहिए: पूर्णांक और फ्लोट। –

+0

@ Bugain13, बहुत बहुत धन्यवाद, आप सही हैं। मुझे कुछ अजीब बात होनी चाहिए क्योंकि यह पहले स्थान पर काम नहीं कर रहा था। आपकी सहायता के लिए धन्यवाद !!!! – Luc

0

जबकि मोंगो डीबी पूरी तरह से फ्लोट प्रकार का समर्थन करता है, मोंगोज़ केवल संख्या का समर्थन करता है जो पूर्णांक है। यदि आप mongooses प्रकार संख्या का उपयोग कर mongoDB फ्लोट नंबर पर सहेजने का प्रयास करते हैं तो इसे स्ट्रिंग में परिवर्तित कर दिया जाएगा।

इसे हल करने के लिए, आपको मोंगोज़ के लिए कुछ प्लगइन लोड करने की आवश्यकता होगी जो इसके मूल्य प्रकारों का विस्तार करेगी। कुछ प्लगइन्स हैं जो मुद्राओं या तिथियों के साथ सबसे अच्छा काम करते हैं, लेकिन आपके मामले में मैं https://www.npmjs.com/package/mongoose-double का उपयोग करूंगा।

परिवर्तन के बाद आपका मॉडल कुछ इस तरह दिखेगा:

var mongoose = require('mongoose') 
require('mongoose-double')(mongoose); 

var SchemaTypes = mongoose.Schema.Types; 
var Car = new Schema({ 
    brand: { 
     type: String 
    }, 
    speed: { 
     type: SchemaTypes.Double 
    }, 
    date: { 
     type: Date, 
     default: Date.now 
    } 
}); 

आशा है कि यह मदद करता है।

+2

नहीं, यह नहीं होगा। आप संख्या के रूप में 25.50 जैसे नंबरों को स्टोर कर सकते हैं और इसे स्ट्रिंग के रूप में संग्रहीत नहीं किया जाएगा – JWindey

संबंधित मुद्दे