mgo-后续测试(指定字段,获取id)
测试完mgo中的DBRef后,想接着测试指定字段的显示,才发现原来采用框架编码,很多问题被隐藏了起来:
1.显示指定字段:
之前在使用mgo时一直是查询全部字段,在mongo终端环境写为如下格式:
> db.logs.find({},{"log":})
{ "_id" : "3a06384a40a8e587806f194c6c80253e", "log" : "这是一个测试日志" }
{ "_id" : "36bb718040a4362b8035ebd822125dba", "log" : "这是一个测试日志" }
为了保证只显示log内容,需要去掉id显示,则写成这样
> db.logs.find({},{"_id":,"log":})
{ "log" : "这是一个测试日志" }
{ "log" : "这是一个测试日志" }
在golang中的mgo写法却需要借助mgo中的select()方法实现,代码如下:
err = d.Find(bson.M{}).Select(bson.M{"log": }).All(&result1)
结果如下:
[ `run` | done: .828631ms ]
[{b5e57fed409eab8e804e17088b1fdaae 这是一个测试日志 { <nil> } -- :: + UTC}
{261e7fe9402c6842807092e7f0df61ce 这是一个测试日志 { <nil> } -- :: + UTC}
去掉id显示:
err = d.Find(bson.M{}).Select(bson.M{"log": 1, "_id": 0}).All(&result1)
结果
{ 这是一个测试日志 { <nil> } -- :: + UTC}
{ 这是一个测试日志 { <nil> } -- :: + UTC}
嗯.....如果想只显示一个字段,我现在的办法是进行循环输出.
for i := 0; i < len(result1); i++ {
fmt.Println(result1[i].Log)
}
2.查询ID的值:
在mongo终端很简单:
> db.logs.find({},{"_id":})
{ "_id" : "3a06384a40a8e587806f194c6c80253e" }
{ "_id" : "36bb718040a4362b8035ebd822125dba" }
在mgo下却查不出来?问题在struct中
//错误写法
type Log struct {
LogId string
Log string
LogUser mgo.DBRef
Inserted time.Time
} //正确写法
type Log struct {
LogId string `bson:"_id"`
Log string
LogUser mgo.DBRef
Inserted time.Time
}
再查询ID没有问题了:),注意查的时间是查"_id"而不是logid
err = d.Find(bson.M{}).Select(bson.M{"_id": 1}).All(&result1)
结果:
{32197b67400e229f8017fd8258c2f700 { <nil> } -- :: + UTC}
{e7dda7b34052584280ef55f49b16eb2c { <nil> } -- :: + UTC}
mgo-后续测试(指定字段,获取id)的更多相关文章
- Yii2框架查询指定字段和获取添加数据的id
指定字段: $historyinfo = Healthy::find()->select(['healthy_id','pet_name','hardware_name','hardware_c ...
- sql 根据指定条件获取一个字段批量获取数据插入另外一张表字段中+MD5加密
/****** Object: StoredProcedure [dbo].[getSplitValue] Script Date: 03/13/2014 13:58:12 ******/ SET A ...
- ruby pluck用法,可以快速从数据库获取 对象的 指定字段的集合数组
可以快速从数据库获取 对象的 指定字段的集合数组 比如有一个users表,要等到user的id数组: select id from users where age > 20; 要实现在如上sql ...
- 获取请求 header 中指定字段的值
private function getHeader($name) {//获取请求头中$name的值 $name = 'HTTP_' . $name; foreach ($_SERVER as $ke ...
- MySQL获取指定字段不重复的记录
关键词:DISTINCT 1.比如数据库一组数据查询如下,返回店铺下所有的区域id 2.SQL统计返回指定字段 district 不重复的 记录id,SQL如下 SELECT DISTINCT(dis ...
- Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
C#反射实现 一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...
- C#NPOI.RabbitMQ.EF.Attribute.HttpRuntime.Cache.AD域.List<T>根据指定字段去重.前端JQuery.Cache.I18N(多语言).data-xx(自定义属性)
使用NPOI 操作Excel 个人使用的电脑基本默认安装Excel 操作起来 调用Excel的组件便可.如果是一台服务器.没有安装Excel,也就无法调用Excel组件. 在此推荐第三方插件.NPOI ...
- Yii使用find findAll查找出指定字段的实现方法
Yii使用find findAll查找出指定字段的实现方法,非常实用的技巧,需要的朋友可以参考下. 用过Yii的朋友都知道,采用如下方法: 查看代码 打印 1 modelName::model() ...
随机推荐
- Flask微型框架入门笔记
例程: from flask import Flask app = Flask(__name__) # 新建一个Flask可运行实体(名字参数如果是单独应用可以使用__name__变量,如果是modu ...
- sublime开发php必备工具集合(mac)
sublime开发php必备工具集合(Mac) 相关链接:http://benmatselby.github.io/sublime-phpcs/ 目标: 直接在sublime中运行php代码 按PSR ...
- solr导入数据库数据-tinyint数据转boolean
solr在导入mysql数据库数据时,遇到一个问题:数据类型为tinyint的数据对应不到solr中的数据类型,因此就需要将tinyint转一下. 修改schema.xml文件,如下: 1.添加boo ...
- 【转】Lua coroutine 不一样的多线程编程思路
Lua coroutine 不一样的多线程编程思路 Sunday, Apr 26th, 2009 by Tim | Tags: coroutine, Lua 上周末开始看<Lua程序设计> ...
- JavaScript中this和$(this)之间的区别以及extend的使用
jQuery中this和$(this)之间的区别: this返回的是当前对象的html对象,而$(this)返回的是当前对象的jQuery对象 举个正确的Demo实例: $("#textbo ...
- WAMPSERVER 与 IIS冲突 及如何修改网站根目录
如果之前打开过IIS服务或者用过xampp则输入localhost时,浏览器显示如下: 这说明WAMPSERVER 与 IIS服务的默认端口冲突: 可以测试80端口是否被占用: 如上端口被IIS服务占 ...
- 腾讯优测优分享 | 这些年,我们追过的 fiddler
腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用,漏洞分析等多维度的测试服务,旗下优分享提供大量的移动研发及测试相关的干货! 一.fiddler原理简介 fiddler是目前最强大最好 ...
- (转)Deep Learning Research Review Week 1: Generative Adversarial Nets
Adit Deshpande CS Undergrad at UCLA ('19) Blog About Resume Deep Learning Research Review Week 1: Ge ...
- Ubuntu 系统密码相关问题
第一个问题: Ubuntu 密码失效解决办法 拷贝:http://www.myexception.cn/operating-system/1707766.html ubuntu14.04突然不能登录, ...
- linux库列表
SDL库 curses openssl zlib library curl library GNU Readline library