myModel.find({}, function(err, items) {
console.log(items.length); // Big number
});
আমি কীভাবে ফিরে আসা আইটেমগুলিকে সর্বাধিক 10 টি আইটেম সন্নিবেশ করিয়েছি?
myModel.find({}, function(err, items) {
console.log(items.length); // Big number
});
আমি কীভাবে ফিরে আসা আইটেমগুলিকে সর্বাধিক 10 টি আইটেম সন্নিবেশ করিয়েছি?
উত্তর:
সর্বশেষতম মঙ্গুজে (লেখার সময় 3.8.1), আপনি দুটি জিনিস আলাদাভাবে করেন: (1) বাছাই করতে আপনাকে একক যুক্তি দিতে হবে (), যা অবশ্যই বাধা বা কেবল একটি সীমাবদ্ধতার অ্যারে এবং (2) ) execFind () চলে গেছে এবং এর পরিবর্তে exec () ব্যবহার করা হবে। অতএব, মঙ্গুজ 3.8.1 এর সাহায্যে আপনি এটি করতে চাই:
var q = models.Post.find({published: true}).sort({'date': -1}).limit(20);
q.exec(function(err, posts) {
// `posts` will be of length 20
});
অথবা আপনি এটিকে একসাথে শৃঙ্খলাবদ্ধ করতে পারেন:
models.Post
.find({published: true})
.sort({'date': -1})
.limit(20)
.exec(function(err, posts) {
// `posts` will be of length 20
});
এটির মতো .limit () ব্যবহার করে:
var q = models.Post.find({published: true}).sort('date', -1).limit(20);
q.execFind(function(err, posts) {
// `posts` will be of length 20
});
models.Post.find({published: true}, {sort: {'date': -1}, limit: 20}, function(err, posts) {
// `posts` with sorted length of 20
});
পরামিতিগুলি সন্ধান করুন
প্যারামিটারগুলি ফাংশনটি গ্রহণ করে তা নিম্নলিখিত:
«Object»
।«Object|String»
ফিরতে alচ্ছিক ক্ষেত্রগুলি দেখুন, ক্যোরি.প্রোটোটাইপ.সलेक्ट নির্বাচন করুন ()«Object»
দেখুন Query.prototype.setOptions ()«Function»
কিভাবে সীমাবদ্ধ
const Post = require('./models/Post');
Post.find(
{ published: true },
null,
{ sort: { 'date': 'asc' }, limit: 20 },
function(error, posts) {
if (error) return `${error} while finding from post collection`;
return posts; // posts with sorted length of 20
}
);
অতিরিক্ত তথ্য
মঙ্গুজ আপনাকে আপনার সংগ্রহগুলি বিভিন্নভাবে জিজ্ঞাসা করতে দেয় যেমন: অফিশিয়াল ডকুমেন্টেশন
// named john and at least 18
MyModel.find({ name: 'john', age: { $gte: 18 }});
// executes, passing results to callback
MyModel.find({ name: 'john', age: { $gte: 18 }}, function (err, docs) {});
// executes, name LIKE john and only selecting the "name" and "friends" fields
MyModel.find({ name: /john/i }, 'name friends', function (err, docs) { })
// passing options
MyModel.find({ name: /john/i }, null, { skip: 10 })
// passing options and executes
MyModel.find({ name: /john/i }, null, { skip: 10 }, function (err, docs) {});
// executing a query explicitly
var query = MyModel.find({ name: /john/i }, null, { skip: 10 })
query.exec(function (err, docs) {});
// using the promise returned from executing a query
var query = MyModel.find({ name: /john/i }, null, { skip: 10 });
var promise = query.exec();
promise.addBack(function (err, docs) {});
কোনও কারণে আমি প্রস্তাবিত উত্তরগুলির সাথে এটি কাজ করতে পারি না, তবে আমি আমার জন্য কাজ করে এমন সিলেক্ট ব্যবহার করে আরও একটি ভিন্নতা পেয়েছি:
models.Post.find().sort('-date').limit(10).select('published').exec(function(e, data){
...
});
এপিও সম্ভবত বদলেছে? আমি সংস্করণটি ব্যবহার করছি 3.8.19
... অতিরিক্তভাবে ব্যবহার নিশ্চিত করুন:
mongoose.Promise = Promise;
এটি মঙ্গুজ প্রতিশ্রুতি দেশীয় ES6 প্রতিশ্রুতি সেট করে। এই সংযোজন ছাড়া আমি পেয়েছি:
অবমাননাকরণ সতর্কতা: মঙ্গুজ: এমপ্রোমিজ (মঙ্গুজের ডিফল্ট প্রতিশ্রুতি লাইব্রেরি) হ্রাস করা হয়েছে, পরিবর্তে আপনার নিজের প্রতিশ্রুতি পাঠাগারটি প্লাগ করুন: http://mongoosejs.com/docs/promises.html