खोज…
टिप्पणियों
सर्वर एकत्रीकरण
उल्का में औसत एकत्रीकरण प्रश्न
ग्राहक एकत्रीकरण (मिनीमोंगो)
https://github.com/utunga/pocketmeteor/tree/master/packages/mongowrapper
सर्वर एकत्रीकरण
एंड्रयू माओ का समाधान। उल्का में औसत एकत्रीकरण प्रश्न
Meteor.publish("someAggregation", function (args) {
var sub = this;
// This works for Meteor 0.6.5
var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;
// Your arguments to Mongo's aggregation. Make these however you want.
var pipeline = [
{ $match: doSomethingWith(args) },
{ $group: {
_id: whatWeAreGroupingWith(args),
count: { $sum: 1 }
}}
];
db.collection("server_collection_name").aggregate(
pipeline,
// Need to wrap the callback so it gets called in a Fiber.
Meteor.bindEnvironment(
function(err, result) {
// Add each of the results to the subscription.
_.each(result, function(e) {
// Generate a random disposable id for aggregated documents
sub.added("client_collection_name", Random.id(), {
key: e._id.somethingOfInterest,
count: e.count
});
});
sub.ready();
},
function(error) {
Meteor._debug( "Error doing aggregation: " + error);
}
)
);
});
एक सर्वर विधि में एकत्रीकरण
एकत्रीकरण करने का दूसरा तरीका Mongo.Collection#rawCollection()
का उपयोग करके है
यह केवल सर्वर पर चलाया जा सकता है।
यहाँ एक उदाहरण है जिसे आप उल्का 1.3 और उच्चतर में उपयोग कर सकते हैं:
Meteor.methods({
'aggregateUsers'(someId) {
const collection = MyCollection.rawCollection()
const aggregate = Meteor.wrapAsync(collection.aggregate, collection)
const match = { age: { $gte: 25 } }
const group = { _id:'$age', totalUsers: { $sum: 1 } }
const results = aggregate([
{ $match: match },
{ $group: group }
])
return results
}
})
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow