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

Node.js . में MongoDB एकत्रीकरण कैसे करें

यहां संभावित समस्या यह है कि आपका userid मान वास्तव में सही नहीं है ObjectID टाइप करें जब इसे पाइपलाइन में पारित किया जा रहा है। इसके परिणामस्वरूप प्रारंभिक चरण में कुछ भी "मिलान" नहीं होता है।

इसलिए अधिक संपूर्ण उदाहरण के रूप में:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var ObjectID = require("mongodb").ObjectID;

mongoose.connect("mongodb://localhost/test");

friendSchema = new Schema({
  "name": String,
  "status": Number
});

memberSchema = new Schema({
  friends: [friendSchema]
});

var Member = mongoose.model("Members", memberSchema );

var userid = new ObjectID("537ec520e98bcb378e811d54");

console.log( userid );

Member.aggregate([
  { "$match": { "_id": userid } },
  { "$unwind": "$friends" },
  { "$match": { "friends.status": 0 } }],
  function( err, data ) {

    if ( err )
      throw err;

    console.log( JSON.stringify( data, undefined, 2 ) );

  }
);

जो तब अपेक्षित रूप से डेटा से मेल खाएगा:

[
  {
    "_id": "537ec520e98bcb378e811d54",
    "friends": [{
      "name": "Ted",
      "status": 0
    }]
  }
]

तो यह सुनिश्चित करने के लिए सावधान रहें कि यह सही प्रकार का है। समग्र विधि स्वचालित रूप से "537ec520e98bcb378e811d54" जैसे स्ट्रिंग मान को ObjectID में लपेटती नहीं है टाइप करें जब इसका उल्लेख पाइपलाइन चरण में _id . के सामने किया गया हो जिस तरह Mongoose अन्य खोज और अद्यतन विधियों के साथ ऐसा करता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb बहुत लंबे _id . के साथ वस्तु नहीं ढूंढ सकता

  2. गोलंग मगो को खाली वस्तुएं मिल रही हैं

  3. स्प्रिंग-डेटा-मोंगोडीबी के साथ एक इकाई में @TextIndex नाम कैसे सेट करें?

  4. मोंगो:बाहरी वजन के आधार पर कैसे छाँटें

  5. MongoDB सरणी से विशेष तत्व प्राप्त करें