मुझे रेथिंकडीबी (नोडजेएस) के साथ कोई समस्या है।
मैं एक साधारण .filter() फ़ंक्शन का उपयोग करने का प्रयास कर रहा हूं, लेकिन किसी अज्ञात कारण से यह परिणाम नहीं खोजना चाहता है। वर्तमान में मेरा कोड इस तरह दिखता है:
const someID = 1234; r.table('list').filter({id: someID}).run().then((err, result) =>{ if(err) throw err; console.log(result) })
मुझे पता है कि आईडी '1234' के साथ परिणाम है क्योंकि अगर मैं यह क्वेरी चलाता हूं:
const someID = 1234; r.table('list').filter({id: 1234}).run().then((err, result) =>{ if(err) throw err; console.log(result) })
यह ठीक काम करता है।
मैंने जो एकमात्र परिवर्तन किया है, वह आईडी को सीधे चर/स्थिर बनाने के बजाय देता है।
क्या मुद्दा हो सकता है?
2 जवाब
किसी के पास भी यही समस्या है, मैंने डेटाबेस में अपना ऑब्जेक्ट बदलकर इसे हल कर लिया है। मैंने अपना id
फ़ील्ड हटा दिया है इसलिए रीथिंक जनरेट करता है यह अपनी कुंजी है, और अब मैं इसे अपनी ऑब्जेक्ट आईडी के रूप में उपयोग कर रहा हूं। यह ठीक काम करता है।
यदि आप किसी तालिका के प्राथमिक सूचकांक (आमतौर पर id
) द्वारा खोज रहे हैं, तो संभवतः get
वह टूल है जिसे आप ढूंढ रहे हैं:
const itemId = 1234;
r.table('list').get(itemId)
यदि आप द्वितीयक कुंजी के आधार पर कुछ ढूंढ रहे हैं, तो getAll
आपके उद्देश्यों को पूरा करेगा:
यदि आवश्यक हो, तो कुंजी बनाएं:
r.table('list').indexCreate('val')
डेटा एक्सेस करें:
const itemVal = 'hey' r.table('list').getAll(itemVal, {index: 'val'}) // would return data like: { id: 1234, val: 'hey' }
ऐसा प्रतीत होता है कि पहला उपयोग मामला वह है जिसे आप ढूंढ रहे हैं, लेकिन मैंने सोचा कि आपको दूसरा सहायक मिल सकता है।