为什么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相关推荐

  1. windows安装MongoDB环境以及在pycharm中配置可视化插件

    安装MongoDB数据库 参考这里 安装PyMongo python3 -m pip3 install pymongo指定版本 python3 -m pip3 install pymongo==3.5 ...

  2. SQL与NoSQL的区别 以MySQL与MongoDB为例

    异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...

  3. php配置mongodb扩展、安装mongodb服务教程

    安装mongodb服务. 1.下载mongodb: mongodb 提供了可用于 32 位和 64 位系统的,你可以从mongodb官网下载安装. mongodb下载地址:https://www.mo ...

  4. MongoDB之conf配置文件详解

    详细看一下mongodb配置文件. mongodb.conf # mongodb.conf# 数据库文件位置 dbpath=/var/lib/mongodb#日志文件的路径 logpath=/var/ ...

  5. CentOS7.4 安装mongodb

    温馨提示:我的环境是腾讯云自带的CentOS7.4 x64 镜像,本地环境是win10 x64 专业版,ssh工具是用的win10 自带的cmd, 远程工具版本是Robo 3T 1.2.1 . 如果环 ...

  6. Centos7下安装MongoDB

    简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自 ...

  7. php mongodb execute,php简单操作mongodb

    您现在的位置是:网站首页>>PHP>>php php简单操作mongodb 发布时间:2019-09-29 16:34:25作者:wangjian浏览量:525点赞量:0 一: ...

  8. 【MongoDB异常】Exception authenticating MongoCredential解决方法

    我们通过ideal编辑器编辑 springboot时候,出现这个错误: com.mongodb.MongoSecurityException: Exception authenticating Mon ...

  9. mongodb插入数据获取本次插入的mongodb id

    最近接了一个别人的项目做二次开发,使用php进行mongodb的数据操作时,需要插入数据后得到相应的mongodb 中的id,简单代码如下 $data = array('test' => 'aa ...

  10. mongodb之备份

    前言 数据库的备份非常重要 备份方式 使用Mongodb自带的运维管理工具(Ops Manager) 需要单独部署,比较麻烦和复杂 通过文件系统快照 Linux需要LVM支持 需要开启journal日 ...

最新文章

  1. 2022-2028年中国演出市场深度调研与投资可行性报告
  2. ecshop 删除订单时提示“以下订单无法被移除”的解决办法
  3. 解决外部工具链接CRM失败的问题
  4. 通过日志恢复SQL Server的历史数据
  5. Hibernate hql getHibernateTemplate()常用方法汇总
  6. linux获取字符格式化,Linux 格式化字符串漏洞利用
  7. python测试抽奖脚本_B站动态转发抽奖脚本+教程
  8. 如何在Debian下快速安装中文字体
  9. 极简嵌入式C语言教程——从入门到入土(1)
  10. 远程控制电脑的实现方法
  11. Dell Inspiron 3443 BIOS升级问题解决
  12. Oracle项目管理系统之合同基本信息
  13. 安装apk文件到linux,linux系统如何安装apk文件
  14. oracle rat结果分析比较,Oracle RAT介绍及最佳实践
  15. python输入一个浮点数、输出其整数部分和小数部分_输入一个浮点数,并输出该数的整数部分和小数部分...
  16. 开源GPU显存虚拟化项目,你的2080Ti还能救一下
  17. 编程珠玑番外篇之番外篇-O 中间语言和虚拟机漫谈(ZZ)
  18. write() java_Java Writer write()方法
  19. Harry Potter Sorting Ceremony(分院帽)
  20. python决策树算法代码_决策树算法的Python实例

热门文章

  1. 初步了解印度数学速算法
  2. 使用Bochs调试Linux内核初级入门
  3. 阻塞(block)/非阻塞(unblock) 同步(synchronization)/异步(asynchronization) 的区别
  4. 三十天学不会TCP,UDP/IP网络编程-TraceRoute的哲学
  5. java标识符的规则等
  6. MySQL查询日志总结
  7. web应用安全防御100技 好书再次阅读, 变的只是表象,被概念迷惑的时候还是静下心来回顾本质...
  8. 深入super,看Python如何解决钻石继承难题
  9. C++中的运算符优先级
  10. 将图片缩放成指定尺寸