How to Use MongoDB with Deno
Updated:
How to Use MongoDB with Deno
1) Visit ‘Third Party Modules’ page of ‘Done’ Website (https://deno.land/x).
2) Enter ‘mongo’ on the ‘Search Input Box’ and press ‘Enter’. 3) Click ‘mongo’ link.
3) Run ‘deno command’ when you want to ren deno_mongo.
deno run --allow-net --allow-write --allow-read --allow-plugin --unstable xxx.ts
4) Examples of codes
- ##Import## Mongo module.
import { MongoClient } from "https://deno.land/x/mongo@v0.8.0/mod.ts";
- Connection
const client = new MongoClient(); client.connectionWithUri("mongodb://localhost:27017");
- Defining schema interface
interface UserSchema { _id: { $oid: string }; username: string; password: string; };
- DB & Schema
const db = client.database("test"); const users = db.collection<UserSchema>("users");
- insert
const insertId = await users.insertOne({ username: "user1", password: "pass1", });
- insertMany
const insertIds = await users.insertMany([ { username: "user1", password: "pass1", }, { username: "user2", password: "pass2", }, ]);
- findOne
const user1 = await users.findOne({ _id: insertId }); // Returns: // { _id: { $oid: "<oid>" }, username: "user1", password: "pass1" }
- find
const all_users = await users.find({ username: { $ne: null }});
- find by ObjectId
const user1_id = await users.findOne( { _id: { "$oid": "<oid>" }}, );
- count
const count = await users.count({ username: { $ne: null } });
- aggregation
const docs = await users.aggregate([ { $match: { username: "many" } }, { $group: { _id: "$username", total: { $sum: 1 } } }, ]);
- updateOne
const { matchedCount, modifiedCount, upsertedId } = await users.updateOne( { username: { $ne: null } }, { $set: { username: "USERNAME" } }, );
- updateMany
const { matchedCount, modifiedCount, upsertedId } = await users.updateMany( { username: { $ne: null } }, { $set: { username: "USERNAME" } }, );
- deleteOne
const deleteCount = await users.deleteOne({ _id: insertId });
- deleteMany
const deleteCount2 = await users.deleteMany({ username: "test" });
References
Deno. deno_mongo. Retrieved July 8, 2020, from https://deno.land/x/mongo —