go 使用mongodb
为什么80%的码农都做不了架构师?>>>
mongodb官方没有关于go的mongo的驱动,因此只能使用第三方驱动,mgo就是使用最多的一种。
官网:http://labix.org/mgo
文档:http://godoc.org/gopkg.in/mgo.v2
等下继续补充。。。。。
mgo使用指南
更新
需要使用 "$set" 来进行包装
err = collection.Update(bson.M{"name": "ccc"}, bson.M{"$set": bson.M{"name": "ddd"}})
碰到的问题
多层查询条件查询数据
在bson.M的key中使用**"."**来连接。如bson.M{"content.status": 1 }
例子:
数据库中结构是这样的
{"_id" : ObjectId("585a5147a6343cbc4874f524"),"type" : 2,"taskno" : NumberLong(10911255838672076),"content" : {"event" : {"label" : "EventLable","content" : "123123","xxx_unrecognized" : { "$binary" : "", "$type" : "00" }},"expiration" : NumberLong(1482918855),"status" : 1}
}
我需要查询type=2, status=1, expiration > time.Now().Unix() 的数据
eventTaskPersist := []taskprocess.EventTaskPersist{}db.C(DbCollectionTaskContents).Find(bson.M{"type": TaskTypeEvent, "content.status": 1, "content.expiration":bson.M{"$gt": time.Now().Unix()} }).All(&eventTaskPersist)
使用"." 来获得下级字段。
数组是否包含指定的数据
如何查询MongoDB中,一个数组是否包含指定的数据
用$in操作符,比如有如下articles的记录:
{ "_id" : ObjectId("5225f0700d4476dc0ed87df1"), "title" : "title1", "tags" : [ "a", "b", "c" ] }
{ "_id" : ObjectId("5225f0840d4476dc0ed87df2"), "title" : "title2", "tags" : [ "a", "b", "d" ] }
在mongodb shell中:
db.articles.find({tags: {$in: ['a']}})
即可查出所有tags中有'a'的记录。
用labix.org/v2/mgo的话:
c.Find(bson.M{"tags": bson.M{"$in": []string{"a"}}}).All(&articles)
当前值在数组范围内
如上例子中 tags:["2.1", "3.2"]
c.Find(bson.M{"tags.0": bson.M{"$lte": 当前值}, "tags.0": bson.M{"$gte": 当前值}}).All(&articles)
表示 2.1<=当前值<=3.2
参考
golang中使用mongodb的操作类以及如何封装
PS: 觉得不错的请点个赞吧!! (ง •̀_•́)ง
转载于:https://my.oschina.net/solate/blog/805114
go 使用mongodb相关推荐
- windows安装MongoDB环境以及在pycharm中配置可视化插件
安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...
- SQL与NoSQL的区别 以MySQL与MongoDB为例
异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...
- php配置mongodb扩展、安装mongodb服务教程
安装mongodb服务. 1.下载mongodb: mongodb 提供了可用于 32 位和 64 位系统的,你可以从mongodb官网下载安装. mongodb下载地址:https://www.mo ...
- MongoDB之conf配置文件详解
详细看一下mongodb配置文件. mongodb.conf # mongodb.conf# 数据库文件位置 dbpath=/var/lib/mongodb#日志文件的路径 logpath=/var/ ...
- CentOS7.4 安装mongodb
温馨提示:我的环境是腾讯云自带的CentOS7.4 x64 镜像,本地环境是win10 x64 专业版,ssh工具是用的win10 自带的cmd, 远程工具版本是Robo 3T 1.2.1 . 如果环 ...
- Centos7下安装MongoDB
简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自 ...
- php mongodb execute,php简单操作mongodb
您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...
- 【MongoDB异常】Exception authenticating MongoCredential解决方法
我们通过ideal编辑器编辑 springboot时候,出现这个错误: com.mongodb.MongoSecurityException: Exception authenticating Mon ...
- mongodb插入数据获取本次插入的mongodb id
最近接了一个别人的项目做二次开发,使用php进行mongodb的数据操作时,需要插入数据后得到相应的mongodb 中的id,简单代码如下 $data = array('test' => 'aa ...
- mongodb之备份
前言 数据库的备份非常重要 备份方式 使用Mongodb自带的运维管理工具(Ops Manager) 需要单独部署,比较麻烦和复杂 通过文件系统快照 Linux需要LVM支持 需要开启journal日 ...
最新文章
- 2022-2028年中国演出市场深度调研与投资可行性报告
- ecshop 删除订单时提示“以下订单无法被移除”的解决办法
- 解决外部工具链接CRM失败的问题
- 通过日志恢复SQL Server的历史数据
- Hibernate hql getHibernateTemplate()常用方法汇总
- linux获取字符格式化,Linux 格式化字符串漏洞利用
- python测试抽奖脚本_B站动态转发抽奖脚本+教程
- 如何在Debian下快速安装中文字体
- 极简嵌入式C语言教程——从入门到入土(1)
- 远程控制电脑的实现方法
- Dell Inspiron 3443 BIOS升级问题解决
- Oracle项目管理系统之合同基本信息
- 安装apk文件到linux,linux系统如何安装apk文件
- oracle rat结果分析比较,Oracle RAT介绍及最佳实践
- python输入一个浮点数、输出其整数部分和小数部分_输入一个浮点数,并输出该数的整数部分和小数部分...
- 开源GPU显存虚拟化项目,你的2080Ti还能救一下
- 编程珠玑番外篇之番外篇-O 中间语言和虚拟机漫谈(ZZ)
- write() java_Java Writer write()方法
- Harry Potter Sorting Ceremony(分院帽)
- python决策树算法代码_决策树算法的Python实例
热门文章
- 初步了解印度数学速算法
- 使用Bochs调试Linux内核初级入门
- 阻塞(block)/非阻塞(unblock) 同步(synchronization)/异步(asynchronization) 的区别
- 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学
- java标识符的规则等
- MySQL查询日志总结
- web应用安全防御100技 好书再次阅读, 变的只是表象,被概念迷惑的时候还是静下心来回顾本质...
- 深入super,看Python如何解决钻石继承难题
- C++中的运算符优先级
- 将图片缩放成指定尺寸