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

एकल दस्तावेज़ स्ट्रिंग सरणी फ़ील्ड के साथ सर्वर साइड पेजिनेशन

आप क्वेरी पर स्लाइस और उसके बाद पॉप्युलेट का उपयोग कर सकते हैं।

User.findById({ _id: req.params.id })
           .slice('blacklistGroup', [10 * (req.query.currentPage - 1), 10])
           .populate("blacklistGroup", "username");

आप $slice और $lookup के साथ समुच्चय का भी उपयोग कर सकते हैं।

User.aggregate([
 {"$match":{"_id":req.params.id}},
 {"$project":{"blacklistGroup":{"$slice":["$blacklistGroup", 10 * (req.query.currentPage - 1), 10]}}},
 {"$lookup":{
   "from": usercollection,
   "localField": "blacklistGroup",
   "foreignField": "_id",
   "as": "blacklistGroup"
 }},
 {"$project":{"usernames":"$blacklistGroup.username"}}])

आप नए लुकअप संस्करण का उपयोग करके इसे और बेहतर बना सकते हैं।

User.aggregate([
 {"$match":{"_id":req.params.id}},
 {"$lookup":{
  "from":usercollection,
  "let":{"blacklistGroup":{"$slice":["$blacklistGroup", 10 * (req.query.currentPage - 1), 10]}},
  "pipeline":[
    {"$match":{"$expr":{"$eq":["$_id","$$blacklistGroup"]}}},
    {"$project":{"username":1,"_id":0}}
  ],
  "as":"blacklistGroup"
}}]);

पूर्णता के लिए पूरा उदाहरण जोड़ा

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true});
var db = mongoose.connection;
mongoose.set('debug', true);
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
});
const UserSchema = new mongoose.Schema({
    blacklistGroup: [{
      type: String,
      ref: 'Group'
    }]
  })
const GroupSchema = new mongoose.Schema({
    _id: String,
    content: String,
    username: String
  })
const User  = mongoose.model('User', UserSchema, 'users');
const Group = mongoose.model('Group', GroupSchema, 'groups');
module.exports = {
    User, Group
  }

 User.findOne().slice("blacklistGroup", 3).populate("blacklistGroup", "username").exec((err, blacklistGroup) => {
      console.log("Populated blacklistGroup " + blacklistGroups);
    })        

उदाहरण 2

. के लिए Mongo Playground लिकन भी जोड़ा

https://mongoplayground.net/p/YP5l5Kz3sp8



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के साथ एक पसंद मतदान प्रणाली का मॉडल कैसे करें

  2. MongoDB में $ in और $ या एक दूसरे को बदल सकते हैं?

  3. Mongoskin के साथ अनियंत्रित बल्क इंसर्टिंग का उपयोग कैसे करें?

  4. कुल प्रक्षेपण पर $elemMatch का उपयोग कैसे करें?

  5. कनेक्शन पर NodeJS + नेवला समयबाह्य