अपडेट (MongoDB v4.0 से मान्य):
आप $expr के संयोजन का उपयोग कर सकते हैं और $toDouble इस तरह वांछित व्यवहार प्राप्त करने के लिए:
db.MyCollection.find({ $expr: { $lte: [ { $toDouble: "$Price" }, 1000.0 ] } })
मूल उत्तर (MongoDB v3.6 और नीचे):
MongoDB स्ट्रिंग्स को संख्याओं में नहीं बदल सकता है। तो यहां आपका एकमात्र विकल्प खतरनाक $where का उपयोग करना है। ऑपरेटर:
db.MyCollection.find({ $where: "parseInt(this.Price) <= 1000" })
यह किसी भी अनुक्रमणिका का उपयोग नहीं करेगा और बिल्कुल तेज़ नहीं है लेकिन शायद छोटे संग्रह के लिए अभी भी ठीक है।
फिर भी मैं संख्याओं को संख्यात्मक प्रकारों के रूप में संग्रहीत करने की अनुशंसा करता हूं। तो आपको अपनी string
को कन्वर्ट करना चाहिए s से int
एस या long
s (या शायद double
s भी) जैसा कि यहाँ दिखाया गया है: mongodb में स्ट्रिंग को संख्यात्मक मानों में कैसे बदलें