mgo 多条件联合查询

golang 对mongodb 有一个mgo 框架 在下也是第一次使用。总结一下

直接上代码 又看不懂或疑问的码友,一起讨论。dt0820@163.com
package main

import (
	"fmt"
	"gopkg.in/mgo.v2/bson"
	"github.com/globalsign/mgo"
)

type User struct {
	Name  string `bson:"name"`
	Age   int    `bson:"age"`
	Class string `bson:"class"`
}

// get mongodb db   连接获取mongo  db
func getDB() *mgo.Database {
	session, err := mgo.Dial("172.16.27.134:10001")
	if err != nil {
		panic(err)
	}

	session.SetMode(mgo.Monotonic, true)
	db := session.DB("test")
	return db
}

func main() {
	//多条件查询
	var query []bson.M
	//以TOM为name条件进行模糊查询
	q1 := bson.M{"name": bson.M{"$regex": "TOM", "$options": "$im"}}
	query = append(query, q1)

	//以年龄大于10来进行查询
	q2 := bson.M{"age": bson.M{"gt": 10}}
	query = append(query, q2)

	//以班级为终极一班来查
	q3 := bson.M{"class": "终极一班"}
	query = append(query, q3)

    //查询语句
	var userArray []User
	err := getDB().C("user").Find(bson.M{"$and": query}).All(&userArray)
	if err != nil {
		fmt.Println("mongodb error!!", err)
	}
}

golang学习者,有任何问题大家一起讨论。学习!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值