NodeJS

2017-01-21 17 views
6

मैं नया का उपयोग कर NodeJS करने और NodeJS अपने डबल मूल्य के रूप में सम्मिलित किया जा रहा है का उपयोग कर मिलीसेकेंड के रूप में वर्तमान टाइमस्टैम्प की MongoDB डालने की कोशिश कर रहा लागू MongoDB में NumberLong के रूप में मिलीसेकेंड में टाइमस्टैम्प सम्मिलित करने के लिए कैसे। किसी को भी मेरी मदद कर सकते हैं कि कैसे NumberLong मूल्य के रूप में इस डालने के लिए।NodeJS

var data = { 
     myId : uniqueId, 
     Timestamp : Date.now(), ---> This one is getting inserted as double. 
     userData : applicationData 
     } 
    } 

मैं इस तरह डालने की कोशिश करता हूं लेकिन स्ट्रिंग के रूप में इसे सम्मिलित करता हूं।

var mongo=require('mongodb'); 
var Long = mongo.Long; 

var data = { 
     myId : uniqueId, 
     Timestamp : Long.fromString((Date.now() + "")), ---> This one is getting inserted as String. 
     userData : applicationData 
     } 
    } 
+0

'संख्याLONG' मूल्य क्या है? क्या आप एक उदाहरण दे सकते हैं? –

+0

MongoDB शैल से यदि क्वेरी डेटा लांग मूल्य मोंगो में NumberLong तरह का प्रतिनिधित्व किया जाएगा। पूर्व के लिए: ObjectId ("58832821e8f07b1a235ae273"), "MyID": "AB223", "समय-चिह्न": NumberLong (1484990497160), ऊपर मूल्य मोंगो डीबी में { "_ id" नीचे की तरह डाला जाना चाहिए "UserData": {} ..... } – Kamalanathan

+0

http://stackoverflow.com/a/21870772/2965883 – ares

उत्तर

8

ऐसा इसलिए है क्योंकि जावास्क्रिप्ट नंबर हमेशा 64-बिट फ़्लोटिंग प्वाइंट होते हैं। आप मोंगो ड्राइवर का लांग (https://mongodb.github.io/node-mongodb-native/api-bson-generated/long.html) का उपयोग इस समस्या से छुटकारा पाने के कर सकते हैं।

var Long = require('mongodb').Long; 
var current_millies = new Date().getTime(); 

var data = { 
myId : uniqueId, 
timestamp : Long.fromNumber(current_millies), 
userData : applicationData 
} 

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