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). Deno_Third_Party_Modules_Page

2) Enter ‘mongo’ on the ‘Search Input Box’ and press ‘Enter’. 3) Click ‘mongo’ link. Search_Mongo_and_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