1 | import * as wmill from "https://deno.land/x/windmill@v1.19.2/mod.ts"; |
2 | import { Bson, MongoClient } from "https://deno.land/x/mongo@v0.30.1/mod.ts"; |
3 |
|
4 |
|
5 | @param: {wmill.Resource} mongodb - Resource containing mongodb connection object |
6 | example: |
7 | await client.connect({ |
8 | db: "<db_name>", |
9 | tls: true, |
10 | servers: [ |
11 | { |
12 | host: "<db_cluster_url>", |
13 | port: 27017, |
14 | }, |
15 | ], |
16 | credential: { |
17 | username: "<username>", |
18 | password: "<password>", |
19 | db: "<db_name>", |
20 | mechanism: "SCRAM-SHA-1", |
21 | }, |
22 | }); |
23 |
|
24 | */ |
25 |
|
26 | export async function main( |
27 | mongodb_con: wmill.Resource<"mongodb">, |
28 | db_name: string, |
29 | collection_name: string, |
30 | data: object, |
31 | _id: string |
32 |
|
33 | ) { |
34 | const client = new MongoClient(); |
35 |
|
36 | |
37 | const resp = await client.connect(mongodb_con); |
38 |
|
39 | const db = client.database(db_name); |
40 | const collection = db.collection(collection_name); |
41 |
|
42 | const { matchedCount, modifiedCount, upsertedId } = await collection.updateOne( |
43 | { _id: ObjectID(_id), }, |
44 | { $set: data }, |
45 | ); |
46 |
|
47 | return ({ matchedCount: matchedCount, modifiedCount: modifiedCount, upsertedId: upsertedId }); |
48 | } |