Inherited from v1.0.0

mongo মডিউল

mongo-c-driver-চালিত MongoDB ক্লায়েন্ট। URI দিয়ে connect, db.collection-এ drill down, plain map দিয়ে CRUD। মেথডের নাম অফিসিয়াল MongoDB driver-এর মতই (camelCase) — তাই API পরিচিত মনে হবে।

import "mongo" as mongo;

var client = mongo.connect("mongodb://localhost:27017");
var users  = client.db("myapp").collection("users");

users.insertOne({ name: "Alice", roles: ["admin"] });
var alice = users.findOne({ name: "Alice" });
print(alice.roles[0]);                 // admin

users.updateOne({ name: "Alice" }, { "$set": { roles: ["admin", "editor"] } });
users.deleteOne({ name: "Alice" });

client.close();

Module API

ফাংশনবর্ণনা
mongo.connect(uri) → clientURI parse ও connect।
mongo.version() → stringClient version।

Client / db / collection

ধাপবর্ণনা
client.db(name)একটি database বেছে নিন।
client.collection(db_name, coll_name)শর্টকাট।
client.ping(db_name?)Handshake force করে (default admin)। ব্যর্থ হলে throw।
client.close()Connection ড্রপ।
db.collection(name)একটি collection।
db.drop()পুরো database ড্রপ।

Collection মেথড

মেথডফেরতবর্ণনা
coll.find(filter, opts?)list of mapsসব matching doc। opts-এ limit, skip, sort, projection দেওয়া যায়।
coll.findOne(filter)map | nullপ্রথম match, না পেলে null।
coll.insertOne(doc){acknowledged, insertedId}একটি doc insert। _id না থাকলে generate হয়।
coll.insertMany(docs){acknowledged, insertedCount, insertedIds}Bulk insert।
coll.updateOne(filter, update)mongoc reply map$set-স্টাইল update।
coll.deleteOne(filter){deletedCount}প্রথম match delete।
coll.deleteMany(filter){deletedCount}সব match delete। সব মুছতে {} দিন।
coll.countDocuments(filter?)numberServer-side count। Filter default {}
coll.distinct(field, filter?)listfield-এর unique value-গুলো।
coll.aggregate(pipeline, opts?)list of mapsAggregation pipeline চালায়।
coll.drop()nullCollection drop।

উদাহরণ

// options সহ find
var top10 = users.find(
    { status: "active" },
    {
        projection: { name: 1, email: 1, _id: 0 },
        sort:       { created_at: -1 },
        limit:      10
    }
);

// $ দিয়ে শুরু operator-গুলো quote-এর ভেতরে
var adults = users.find({ age: { "$gte": 18 } });

// bulk insert
var r = users.insertMany([
    { name: "A", age: 21 },
    { name: "B", age: 35 }
]);
print(r.insertedCount);   // 2

// distinct value
var roles = users.distinct("role");

// aggregation pipeline
var by_role = users.aggregate([
    { "$match": { status: "active" } },
    { "$group": { _id: "$role", n: { "$sum": 1 } } },
    { "$sort":  { n: -1 } }
]);

আরও দেখুন