永发信息网

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

答案:1  悬赏:30  手机版
解决时间 2021-02-15 12:38
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
//selector := bson.M{"fetch_priority": 5, "invalid": false}
//selector := bson.M{"fetch_priority": 5, "from": bson.M{"$ne": "dig"}, "invalid": false}
selector := bson.M{"from": "KeywordsSearch"}
db.SetCollection("digapp")
iter := db.GetIter(nil, selector)
for iter.Next(&digapp) {
fmt.Println(digapp)
}
}

func (db *DB) DBInit() error {
var err error
db.Session, err = mgo.DialWithInfo(&mgo.DialInfo{Addrs: []string{MongoDBUrl}, Username: Username, Password: Password})
if err == nil {
db.Session.SetSafe(&mgo.Safe{WMode: WMode})
}
return err
}

func (db *DB) Close() {
db.Session.Close()
}

func (db *DB) SetCollection(collection string) {
db.Collection = db.Session.DB(MongoDBName).C(collection)
}

func (db *DB) GetIter(condition interface{}, selector bson.M, sortor ...string) *mgo.Iter {
return db.Collection.Find(condition).Select(selector).Iter()
}

当使用selector := bson.M{"fetch_priority": 5, "invalid": false}时,输出的是正确抓取到的值;
当使用selector := bson.M{"fetch_priority": 5, "from": bson.M{"$ne": "dig"}, "invalid": false}时,什么都抓不到(没有任何输出信息);
当使用selector := bson.M{"from": "KeywordsSearch"}时,输出的是{ KeywordsSearch false 0 0 false}。
真是奇哉怪也.搞了一早上搞得头大也没弄清楚到底是什么状况。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我做了两年股票了,赚赚亏亏,想系统学习下,
坐长途汽车可以带狗吗
戒不掉你的味道繁体字
比亚迪f0正时链条 对错一个齿会怎么样
黄山天海听涛小居客栈这个地址在什么地方,我
下列加点字解释,相同的一组是A(3分)A. 扶
快递公司的"揽收扫描"和"收入扫描"各表示什么
菲妮·瓷砖地址在什么地方,我要处理点事
全面战争宋金风云多少回合一年?怎样激活啊?
香樟树叶子冻死了,树会死吗
徕卡全站仪怎么放样
川味大盘鸡在哪里啊,我有事要去这个地方
圣弗莱冲锋衣上衣口袋开胶怎么办
盛美家瓷砖批发中心(千业路)地址有知道的么?
小篆距今有多少年
推荐资讯
人类进入分散的乡村聚落阶段始于A. 手工业和
吴江区正亮化纤厂在什么地方啊,我要过去处理
【黄鹤楼的传说】黄鹤楼的传说
张仲景大药房土门店在什么地方啊,我要过去处
劲舞团8K8步有个一转身的步子是什么
清淳家园五区地址有知道的么?有点事想过去
我们之间只剩下回忆了的英语怎么写
妍丽美容美体生活馆地址好找么,我有些事要过
java连接到sql sever 2008的问题。
天宇基地秋田犬听说好多地方都有,各位有没买
爱沫空间地址在什么地方,想过去办事
南昌2017十九中理课一模考试成绩
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?