mongodbgo语言 mongodb语法详解

程序需要在有auth认证的mongodb下运行eval函数或命令时提示无权限

mongodb本来是没有权限问题的,因为默认设置无用户无密码,

成都创新互联公司专注于刚察网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供刚察营销型网站建设,刚察网站制作、刚察网页设计、刚察网站官网定制、微信小程序开发服务,打造刚察网络公司原创品牌,更为您提供刚察网站排名全网营销落地服务。

为了保障安全,需要手动设置一个账号和用户,这里不细谈如何创建有权限认证的mongodb账号(如mysql的root用户)

笔者用的是golang10.1+mongodb3.6,之前项目是不认证的程序,加了认证之后提示没有权限操作

那么首先在

连接地址处加上用户和密码(马赛克处是密码)

运行单元测试发现,增查删改功能正常,但是

eval函数还是说我没有授权

看了官网文档说

需要grant一个anyAction on anyResource的user

参考于

解决办法如下:

登录mongodb,执行以下命令:

其中yourusername和yourpassword是自己设置的用户和密码(这个用户前提是已经有了root权限)

问题解决。

开源数据统计平台 -- GoAnalytics

本项目用于移动端的数据统计,项目地址: 。开源的数据统计countly做的很好,但是基础免费版的功能实在不够看,因此我就决定用go语言来写了这个项目,一来可以在实践中学习go语言,二来也可以开发功能完整的开源平台。该项目正在开发中,欢迎有兴趣的gopher一起参与。

数据存储方面使用的是mongodb。由于数据统计业务几乎不涉及到事务以及严格的一致性场景,而且mongodb的自动分片功能可以支撑较大的数据量。使用大数据的存储组件的话就太过于重了。因此选用mongodb。

业务逻辑整体基于事件的发布订阅。当收到客户端请求, frontend 会对请求数据进行处理,然后发布响应的事件。 backend 收到事件后进行统计处理。

后台展示基于Vue-Admin-Template开发,本人前端能力基本就是依葫芦画瓢,希望有前端大神来开发后台页面,项目地址:

目前客户端API仅有2个。一个是上报 openApp 打开APP时间,一个是上报 usageTime 一次启动使用时长事件。SDK方面也需要移动端的大神开发,感兴趣的大佬可以一起开发。

下面放一点后台页面的效果图:

GoAnalytics是基于go实现的一个数据统计平台,用于统计移动端的数据指标,比如启动次数、用户增长、活跃用户、留存等指标分析。前端数据展示项目是 goanalytics-web 。目前正在积极开发中,欢迎提交新的需求和pull request。

Go版本需要支持module,本地开发测试

cmd/goanalytics_kafka 和 goanalytics_rmq 是分别基于 kafka 和 rocketmq 的发布订阅功能做的数据发布

和订阅处理,横向扩展能力比 local 高。另外由于 rocketmq 还没有原生基于 go 的客户端(原生客户端正在开发中

2.0.0 road map ),可能会存在问题。

项目结构

├── README.md

├── api

│ ├── authentication 用户认证、管理API

│ ├── middlewares GIN 中间件

│ └── router API route

├── cmd

│ ├── account 生成admin账号命令

│ ├── analytic_local 不依赖消息系统的goanalytics

│ ├── goanalytics_kafka 基于kafak的goanalytics

│ ├── goanalytics_rmq 基于rocketmq的goanalytics

│ └── test_data 生成测试数据命令

├── common

│ └── data.go

├── conf 配置

│ └── conf.go

├── event

│ ├── codec 数据编解码

│ └── pubsub 消息发布订阅

├── go.mod

├── go.sum

├── metric 所有的统计指标在这里实现

│ ├── init.go

│ └── user 用户相关指标的实现

├── schedule

│ └── schedule.go 定时任务调度

├── storage 存储模块

│ ├── counter.go 计数器接口

│ ├── data.go

│ └── mongodb 基于mongodb实现的存储及计数器

└── utils

├── date.go

├── date_test.go

├── errors.go

└── key.go

golang使用mgo操作mongoDB遇到奇葩问题,求教

package main

import (

"fmt"

"gopkg.in/mgo.v2"

"gopkg.in/mgo.v2/bson"

)

type DB struct {

Session *mgo.Session

Collection *mgo.Collection

}

type Digapp struct {

App_id string

Fetch_url string

From string //

Fetch_state bool

Fetch_priority int32 //

Create_time int64 //

Invalid bool // + app is access now ?

}

func main() {

db := new(DB)

if err := db.DBInit(); err != nil {

fmt.Println("初始化数据库失败!错误为:" + err.Error())

return

}

defer db.Close()

var digapp Digapp

//{"fetch_priority": 5, "


分享文章:mongodbgo语言 mongodb语法详解
分享URL:http://myzitong.com/article/dogdodo.html