পূর্ণসংখ্যা সন্নিবেশ করার চেষ্টা করার সময় মঙ্গোডিবি সন্নিবেশগুলি ভাসমান


209
   > db.data.update({'name': 'zero'}, {'$set': {'value': 0}}) 
   > db.data.findOne({'name': 'zero})
    {'name': 'zero', 'value': 0.0}  

আমি পূর্ণসংখ্যা প্রবেশ করানোর জন্য মঙ্গোকে কীভাবে পেতে পারি?

ধন্যবাদ


আপনি মঙ্গোদব এর কোন সংস্করণ ব্যবহার করেন?
কামারাডক্লিমবার


1
মনে রাখবেন যে আমার ক্ষেত্রে, যখন আমি $ $ সেট করতে চাইছিলাম: Number ভাল: নাম্বারআইটি (0)} some এমন কিছু "ভাল" যা ইতিমধ্যে লং হিসাবে সেট করা হয়েছিল, এটি পরিবর্তন করে নি। আমি প্রথমে এটি অন্য কোনও মানতে পরিবর্তন করতে হয়েছিল, তারপরে আবার 0 এ পরিবর্তন করতে হবে, নাম্বার আইট (0) কার্যকর হওয়ার জন্য
kommradHomer

আমারও একই সমস্যা হয়েছিল, বুঝতে পেরে আমি ভুল করে একটি int32কে দ্বিগুণ করে পরিবর্তন করেছি, নাম্বারআইটি () ব্যবহার করে এটি পুনরায় সেট করে আমি টাইপটি ঠিক করি না যদি না আমি প্রথমে ভিন্ন মানের পরিবর্তিত হয়।
ব্যবহারকারী 1055568

উত্তর:


328
db.data.update({'name': 'zero'}, {'$set': {'value': NumberInt(0)}})

আপনি নাম্বার লংও ব্যবহার করতে পারেন।


1
তবে সন্ধানের ক্ষেত্রে এটি নাম্বার লং (0) 0
দিনের

11
ডিফল্টরূপে, মঙ্গো শেল সমস্ত সংখ্যাকে ভাসমান-পয়েন্টের মান হিসাবে গণ্য করে। সুতরাং আমরা কী ধরণের নম্বর ব্যবহার করতে চাই তা স্পষ্ট করে উল্লেখ করতে হবে যেমন নাম্বারআইএন্ট বা নাম্বার লং। docs.mongodb.org/manual/core/shell-types
Yadu

12
আমার একটা প্রশ্ন আছে. নাম্বারআইটিটি কেবল মঙ্গো শেলের মধ্যে সরবরাহ করা হয়, আপনি কীভাবে নোড.জেএস এর মতো জাভাস্ক্রিপ্ট ভাষায় এটি করেন?
萧 易 客

@Shawyeok এখানে একটি উত্তর stackoverflow.com/a/21870772/3815843
GRiMe2D

Ints এর সীমাবদ্ধতা আছে তা বিবেচনা করা গুরুত্বপূর্ণ। সংখ্যাটি যদি বড় হয় তবে লম্বা
টিম জিভোইস

17

একটি সামান্য সরল বাক্য গঠন (কমপক্ষে রোবমঙ্গোতে) আমার জন্য কাজ করেছিল:

db.database.save({ Year : NumberInt(2015) });

5

যদি মান ধরণটি ইতিমধ্যে দ্বিগুণ হয়, তবে $ সেট কমান্ডের সাহায্যে মান আপডেট করুন সংখ্যাবিহীন () বা সংখ্যা লং () ফাংশন ব্যবহার করার সময় মান প্রকারের ডাবলকে ইন্টিতে পরিবর্তন করতে পারবেন না। সুতরাং, মান ধরণের পরিবর্তন করতে, এটি অবশ্যই পুরো রেকর্ডটি আপডেট করবে update

var re = db.data.find({"name": "zero"})
re['value']=NumberInt(0)
db.data.update({"name": "zero"}, re)

$setকমপক্ষে মঙ্গো ৪.২ এ কাজ করেছে, তাই সম্ভবত এটি একটি বাগ ছিল।
সার্বেরাস

-10

ঠিক আছে, এটি জাভাস্ক্রিপ্ট, সুতরাং আপনার 'মান' তে যা আছে তা হ'ল একটি সংখ্যা, যা একটি পূর্ণসংখ্যা বা ভাসা হতে পারে। তবে জাভাস্ক্রিপ্টে আসলেই কোনও পার্থক্য নেই। জাভাস্ক্রিপ্ট শেখা থেকে :

সংখ্যা তথ্য প্রকার

জাভাস্ক্রিপ্টে সংখ্যা তথ্য প্রকারগুলি ভাসমান-পয়েন্ট সংখ্যা হয় তবে তাদের একটি ভগ্নাংশ উপাদান থাকতে পারে বা নাও থাকতে পারে। তারা একটি দশমিক বিন্দু বা ভগ্ন উপাদান না থাকে, তাহলে তারা পূর্ণসংখ্যার-10-ভিত্তিক এর -2 একটি সীমার মধ্যে পুরো নম্বর হিসাবে গণ্য করছেন 53 2 53


27
আসলে তা সত্য নয়। জেএস কোনও পার্থক্য দেখতে পাচ্ছে না, আপনি অন্য ভাষা থেকে (যেমন জাভা) মঙ্গোর সাথে সংযোগ করার সাথে সাথে আপনি খুব বেশি পার্থক্যটি অনুভব করবেন।
ওমরি স্পেক্টর

2
আমার অ্যাপ্লিকেশনটি কেবলমাত্র এক কারণে বিভিন্ন পয়েন্টে ভেঙে গেছে, ইনট সংরক্ষণ করা হয় এবং ফ্লোট হিসাবে ফিরে আসে। আমি সন্দেহ করি কারণটি মোঙ্গো শেলের মাধ্যমে জাভাস্ক্রিপ্ট ব্যবহার করে কিছু ম্যানুয়াল সন্নিবেশ থাকতে হবে।
মেলসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.