# deno_mongo **Repository Path**: hackers267/deno_mongo ## Basic Information - **Project Name**: deno_mongo - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # deno_mongo > **deno_mongo** is a **MongoDB** database driver developed for deno, based on rust's official [`mongodb`](https://crates.io/crates/mongodb) library package. [![star](https://gitee.com/hackers267/deno_mongo/badge/star.svg?theme=dark)](https://gitee.com/hackers267/deno_mongo/stargazers) [![fork](https://gitee.com/hackers267/deno_mongo/badge/fork.svg?theme=dark)](https://gitee.com/hackers267/deno_mongo/members) 源自 [deno_mongo](https://github.com/manyuanrong/deno_mongo) ## Links - [Guides]() TODO - [Examples](./EXAMPLES.md) - [Benchmarks]() TODO ## Important Because the plug-in API of Deno is still in an unstable state, the `--unstable` flag needs to be used. The minimum permissions required to run deno_mongo should be ```sh deno run --allow-net --allow-write --allow-read --allow-plugin --allow-env --unstable xxx.ts ``` ## Examples ```ts import { MongoClient } from "https://gitee.com/hackers267/deno_mongo/raw/master/mod.ts"; const client = new MongoClient(); client.connectWithUri("mongodb://localhost:27017"); // Defining schema interface interface UserSchema { _id: { $oid: string }; username: string; password: string; } const db = client.database("test"); const users = db.collection("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: "" }, 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: "" } }); // 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" }); // Skip const skipTwo = await users.skip(2).find(); // Limit const featuredUser = await users.limit(5).find(); ```