当前位置: 首页 > news >正文

go MongoDB

  1. 安装
go get go.mongodb.org/mongo-driver/mongo 
package mongodbexampleimport ("context""fmt""ginapi/structs""time""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/bson/primitive""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options"
)var mongoClient *mongo.Clientvar testCollection *mongo.Collectionfunc InitMongo() {clientOptions := options.Client().ApplyURI("mongodb://ellis:ellischen@192.168.214.133:32000/")mongoClient, _ := mongo.Connect(context.TODO(), clientOptions)testCollection = mongoClient.Database("baz").Collection("qux")
}func InsertOneByStruct() {res, err := testCollection.InsertOne(context.Background(), &structs.MongoStruct{Id: primitive.NewObjectID(), UserName: "ellis", Email: "849773373@qq.com"})if err != nil {fmt.Printf("err: %v\n", err)}id := res.InsertedIDfmt.Printf("id: %v\n", id)
}func InsertManyByStructs() {values := []interface{}{structs.MongoStruct{Id: primitive.NewObjectID(), UserName: "1", Email: "1"}, structs.MongoStruct{Id: primitive.NewObjectID(), UserName: "2", Email: "2"}}imr, _ := testCollection.InsertMany(context.Background(), values)fmt.Printf("imr.InsertedIDs: %v\n", imr.InsertedIDs)
}func FindALL() {ctx, channel := context.WithTimeout(context.Background(), 30*time.Second)defer channel()// cur, _ := testCollection.Find(ctx, bson.M{"username": "1"})cur, _ := testCollection.Find(ctx, bson.D{{"username", "1"}})defer cur.Close(ctx)for cur.Next(ctx) {var value structs.MongoStructcur.Decode(&value)fmt.Printf("value: %v\n", value)}
}func UpdateMany() {ctx, channel := context.WithTimeout(context.Background(), 30*time.Second)defer channel()ur, err := testCollection.UpdateMany(ctx, bson.D{{"username", "vv"}}, bson.D{{"$set", bson.D{{"username", "ellis"}, {"email", "haha"}}}})if err != nil {fmt.Printf("err: %v\n", err)}fmt.Printf("ur.MatchedCount: %v\n", ur.MatchedCount)
}func DeleteOne() {ctx, channel := context.WithTimeout(context.Background(), 30*time.Second)defer channel()dr, err := testCollection.DeleteOne(ctx, bson.D{{"username", "1"}})if err != nil {fmt.Printf("err: %v\n", err)}fmt.Printf("dr.DeletedCount: %v\n", dr.DeletedCount)
}// func main() {
// 	InitMongo()
// 	// InsertOneByStruct()
// 	// InsertManyByStructs()
// 	// FindALL()
// 	// UpdateMany()
// 	DeleteOne()
// }

https://ocakhasan.github.io/golang-mongodb-query-examples/

相关文章:

go MongoDB

安装 go get go.mongodb.org/mongo-driver/mongo package mongodbexampleimport ("context""fmt""ginapi/structs""time""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/bson/primitive""…...

算法与数据结构(八)--优先队列

普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除,在某些情况下,我们可能需要找出队列中的最大值或者最小值。 例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的&#xff…...

React 全栈体系(三)

第二章 React面向组件编程 四、组件三大核心属性3: refs与事件处理 1. 效果 需求: 自定义组件, 功能说明如下: 点击按钮, 提示第一个输入框中的值当第2个输入框失去焦点时, 提示这个输入框中的值 2. 理解 组件内的标签可以定义ref属性来标识自己 3. 编码 3.1 字符串形式…...

腾讯云下一代CDN -- EdgeOne加速MinIO对象存储

省流 使用MinIO作为EdgeOne的源站。 背景介绍 项目中需要一个兼容S3协议的对象存储服务,腾讯云的COS虽然也兼容S3协议,但是也只是支持简单的上传下载,对于上传的时候同时打标签这种需求,就不兼容S3了。所以决定自建一个对象存储…...

GitLab-CI 指南

GitLab CI 指南 前置工作 部署GitLab 部署GitLab-Runner 注册Runner到GitLab docker exec -it gitlab-runner bash # 进入容器 gitlab-runner register #调用register命令开始注册 # 在Gitlab Setting中找到Runners,如下图所示Enter the GitLab instance URL (for example, …...

MyBatis的核心技术掌握,简单易懂(上)

目录 一.MyBatis中的动态SQL 二.MyBatis中的模糊查询 1. # 符号 2. $ 符号 ---问题 ---所以大家知道 # 和 $ 在MyBatis中的模糊查询中的区别了嘛?? 三.MyBatis 中的结果映射 1. resultType: 2. resultMap: ---问题 ---…...

Redisson自定义序列化

Redisson自定义序列化_redisson 序列化_yzh_1346983557的博客-CSDN博客 redis存取的数据一定是可序列化的,而可序列化方式可以自定义。如果不同客户端设置的可序列化方式不一样,会导致读取不一致的问题。常见的序列化方式有几下几种...

MongoDB Long 类型 shell 查询

场景 1、某数据ID为Long类型,JAVA 定义实体类 Id Long id 2、查询数据库,此数据存在 3、使用 shell 查询,查不到数据 4、JAVA代码查询Query.query 不受任何影响 分析 尝试解决(一) long 在 mongo中为 int64 类型…...

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现GA-APSO-IBP改进遗传-粒子群算法优化双层BP神经网络多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现GA-…...

Spring cache整合Redis使用介绍

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

Metasploit提权

一、bypassuac 用户账户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也…...

TypeScript三种特殊类型

1.any类型 说明:any类型代表着可以赋值任意类型 let nickname:any"王二"nickname15nicknametruenicknameundefinednicknamenullnickname{}2.unknown类型 说明:类似any类型;只是不能赋值到其它类型上;除了any和known。…...

如何使用CSS实现一个响应式轮播图?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式轮播图的示例⭐ HTML 结构⭐ CSS 样式 (styles.css)⭐ JavaScript 代码 (script.js)⭐ 实现说明⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带…...

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成

数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成; 2.马尔科夫链蒙特卡洛方…...

【从零开始的rust web开发之路 二】axum中间件和共享状态使用

系列文章目录 第一章 axum学习使用 第二章 axum中间件使用 文章目录 系列文章目录前言一、中间件是什么二、中间件使用常用中间件使用中间件使用TraceLayer中间件实现请求日志打印自定义中间件 共享状态 前言 上篇文件讲了路由和参数相应相关的。axum还有个关键的地方是中间件…...

Vue操作时间

一、获取现在时间 const currentTime () > {let date new Date();let year date.getFullYear(); //月份从0~11,所以加一let month date.getMonth();let dateArr [date.getMonth() 1,date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds(),…...

数据库——Redis 常见数据结构以及使用场景分析

文章目录 1. string2. list3. hash4. set5. sorted set 你可以自己本机安装 redis 或者通过 redis 官网提供的在线 redis 环境。 1. string 介绍 :string 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串…...

数学建模-规划工具箱yalmip

官网下载 实例 %% yalmip 求解 yalmip clc;clear;close all; %% %sdpvar实型变量 intvar 整形变量 binvar 0-1型变量 psdpvar(3,1); %定义变量 %目标函数 要把求最大值转化为最小值 Objective-p(1)^2p(2)^2-p(2)*p(3);%约束条件 Constraints[0<p<1,(p(1)^2p…...

[SQL挖掘机] - 窗口函数 - 计算移动平均

介绍: 在窗口函数使用时&#xff0c;计算的是累积到当前行的所有的数据的相关操作。 实际上&#xff0c;还可以指定更加详细的汇总范围。该汇总范围称为 框架 (frame)。 其实这里也可以理解成一个窗口, 这个窗口是我们可以进行设置的. 之前我们介绍的窗口函数是根据partition…...

域名和hostname

最近用git克隆远程仓库时总是超时&#xff0c;报错说是代理的问题&#xff0c;但打开和关闭代理都没能解决问题&#xff0c;后面了解到可以关闭git命令的全局代理&#xff1a; git config --global --unset http.proxy git config --global --unset https.proxy如果下次要用的…...

基于AVR单片机的无线图像侦检系统:从硬件选型到软件实现

1. 项目概述与核心价值最近在整理过去的项目资料&#xff0c;翻到了一个挺有意思的老项目——基于Atmel AVR单片机的无线图像侦检系统。虽然现在STM32、ESP32满天飞&#xff0c;各种高性能MCU和无线模块层出不穷&#xff0c;但这个项目在当年&#xff08;以及现在某些特定场景下…...

钉钉知识库日志迁移至Cursor的实践方法和具体操作步骤

一、钉钉知识库导出方法 方法1:手动导出(适合文档数量较少) 操作步骤: 电脑端钉钉 → 左下角【更多】→【文档】→【知识库】 进入目标知识库,打开需要迁移的文档 点击页面左上角 【文档】→【下载为】 选择导出格式:Word (.docx)、PDF 或 长图 文件默认以当前文档…...

CANN/asnumpy-docs 架构设计

Architecture 【免费下载链接】asnumpy-docs 项目地址: https://gitcode.com/cann/asnumpy-docs This document describes the internal architecture of AsNumpy, including the three-layer design, the core NPUArray data structure, the API module layout, and t…...

使用openclaw配置taotoken实现自动化agent工作流的实践指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用OpenClaw配置Taotoken实现自动化Agent工作流的实践指南 1. 概述&#xff1a;OpenClaw与Taotoken的集成价值 OpenClaw是一个用…...

Codex SQL迁移终极指南:数据库架构变更的自动化革命

Codex SQL迁移终极指南&#xff1a;数据库架构变更的自动化革命 在当今快速迭代的软件开发环境中&#xff0c;数据库架构变更是每个开发团队都必须面对的挑战。传统的手动SQL迁移过程不仅耗时耗力&#xff0c;还容易出错。Codex作为一款革命性的聊天驱动开发工具&#xff0c;通…...

OpenHarmony系统定制:实现开机自启动应用与Launcher替换实战

1. 项目概述&#xff1a;为OpenHarmony设备定义“开机即用”的体验最近在基于触觉智能的RK3566开发板上折腾OpenHarmony 4.1&#xff0c;一个很实际的需求浮出水面&#xff1a;如何让系统开机后&#xff0c;默认就打开我指定的应用&#xff1f;这不仅仅是开发者的自娱自乐&…...

如何快速跳过FF14副本动画:终极ACT插件安装与使用指南

如何快速跳过FF14副本动画&#xff1a;终极ACT插件安装与使用指南 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 还在为《最终幻想14》国服副本中那些无法跳过的冗长动画而烦恼吗&#xff1f;FFXIV_AC…...

别再到处找安装包了!手把手教你从官网下载并配置Paraview 5.11.0(Windows/Linux/MacOS全平台)

科学可视化利器Paraview全平台安装指南&#xff1a;从官网下载到环境配置 第一次接触科学可视化工具的新手们&#xff0c;往往会在安装环节就遭遇重重阻碍——官网入口难寻、版本选择困难、系统兼容性问题频发。作为一款功能强大的跨平台开源工具&#xff0c;Paraview的安装过程…...

RISC-V SoC中TileLink互连验证IP的设计与实战应用

1. 项目概述&#xff1a;为什么RISC-V SoC需要一个专门的TileLink验证IP&#xff1f;如果你正在设计或验证一个基于RISC-V的片上系统&#xff08;SoC&#xff09;&#xff0c;尤其是当它集成了多个处理器核心、加速器、DMA控制器和各种内存控制器时&#xff0c;那么“互连”这个…...

Beyond Compare 5密钥生成终极指南:从激活失败到完全使用

Beyond Compare 5密钥生成终极指南&#xff1a;从激活失败到完全使用 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否也遇到过Beyond Compare 5弹出"评估模式错误"的困扰&#…...