MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

क्या कुल मिलाकर स्कीमा में मोंगोज़/मोंगोडब के पास ऑब्जेक्ट संदर्भों तक पहुंच है?

कुल प्रक्रिया के दौरान ऑब्जेक्ट संदर्भित डेटा तक पहुंचने का कोई तरीका नहीं है, मेरे प्रोजेक्ट के लिए मैंने जो काम किया है, वह प्रश्न में स्कीमा में मालिक के संदर्भ को जोड़ना था।

User = new Schema({
    places:[{type: Schema.Types.ObjectId, ref:'Place'}],
    shouts:[{type: Schema.Types.ObjectId, ref:'Shout'}]
});
Place = new Schema({
    owner:{type: Schema.Types.ObjectId, ref:'Place'},
    name:String,
    description:String,
});
Shout = new Schema({
    owner:{type: Schema.Types.ObjectId, ref:'Place'},
    content:String,
});

और फिर उप-दस्तावेज़ पर सीधे एकत्रित करने के लिए नियोजित किया जाता है ताकि अद्वितीय उपयोगकर्ता प्राप्त कर सकें जो स्थान के उदाहरणों के स्वामी हैं, इस तरह मैं एक क्वेरी और एक स्थान से मेल खाने वाला एक चिल्लाहट परिणाम प्राप्त कर सकता हूं।

उदाहरण:

module.exports.askForShoutInPlace = function(req, res){
var pname = new RegExp(req.params.pname, 'i'); 
var stringQ = new RegExp(req.paramos.qcontent, 'i');
Place.aggregate(
    [
       //find Places that match criteria
       {'$match':{'name':pname}},
       //select owner id object to result
       {'$project':{ owner:'$owner'}},
       //group those results to single array with unique ids of users
       {'$group':{_id:'$owner'}}
    ]).exec(function(err, results){
    //find user shouts that match string and belong to owners know to be owners of a place
    Shout.find({'content':stringQ}).where({'owner':{'$in':results}}).exec(function(err, shouts){
       res.send(shouts);
    });
});

}

यह मेरी विशेष जरूरतों के लिए काम करने का तरीका है, मुझे आशा है कि यह किसी की मदद कर सकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में सभी अद्वितीय टैग की सूची प्राप्त करें

  2. नेवला में मिश्रित डेटा प्रकार का उपयोग करके मूल्यों को कैसे प्रतिबंधित करें?

  3. त्रुटि:बाल प्रक्रिया विफल, त्रुटि संख्या 1, mongodb . के साथ बाहर निकली

  4. ट्वीपी के साथ ट्वीट लाने में त्रुटि

  5. रूबी ऑन रेल्स 3.2 में मोंगो डीबी सत्र भंडारण का उपयोग करते समय पुराने/पुराने सत्रों को कैसे साफ़ करें?