惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
Recorded Future
Recorded Future
The Register - Security
The Register - Security
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
Webroot Blog
Webroot Blog
Help Net Security
Help Net Security
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
J
Java Code Geeks
C
CXSECURITY Database RSS Feed - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyberwarzone
Cyberwarzone
小众软件
小众软件
G
Google Developers Blog
SecWiki News
SecWiki News
V
V2EX
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
S
Security Affairs
AI
AI
S
Securelist
D
Docker
人人都是产品经理
人人都是产品经理
T
Troy Hunt's Blog
罗磊的独立博客
The Hacker News
The Hacker News
阮一峰的网络日志
阮一峰的网络日志
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
P
Proofpoint News Feed
Vercel News
Vercel News
Jina AI
Jina AI

博客园 - forrestsun

问题整理 weedfs getsockopt: connection timed out 利用cubieboard设置samba打印服务器 CubieTruck上安装mjpg_streamer devexpress bandgridview使用总结(14.2) WeedFS0.6.8-引用库列表 NSQ的消息订阅发布测试 WeedFS问题收集 WeedFS依赖库 0.6.1 golang 前置补0 MongoDB-MMS使用总结 golang 格式化时间为字符串 格式化字符串为时间学习总结 mgo-后续测试(指定字段,获取id) mgo中DBRef-数据查询测试 mgo中DBRef-数据添加测试 weed-fs 基础测试 weed-fs 压力测试 weed-fs参数列表
mgo like的两种写法
forrestsun · 2013-09-12 · via 博客园 - forrestsun

实际上都是围绕正则来写的,看大家喜欢那种写法

package main

import (
    "fmt"
    "labix.org/v2/mgo"
    "labix.org/v2/mgo/bson"
    "time"
)

type User struct {
    Name     string    //用户名称
    Key      string    //关键字
    Modified time.Time //修改时间
}

func main() {
    str1 := "aaaaaaaaaaaaaaaaaaaaaaraaaaaaaaaaaaaa"
    str2 := "bbbbbbbbbbbbbbbbbbbbbbbbbhbbbbbbbbbbb"
    str3 := "xxxxxxxxxxxxxxxxxxxxx"

    session, err := mgo.Dial("localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()

    c := session.DB("lsoa").C("users")
    c.DropCollection()
    for i := 0; i < 10; i++ {
        if i%2 == 0 {
            err = c.Insert(&User{fmt.Sprintf("cst%d", i), str1, time.Now()})
        } else {
            err = c.Insert(&User{fmt.Sprintf("est%d", i), str2, time.Now()})
        }
    }
    err = c.Insert(&User{fmt.Sprintf("cest%d", 12), str3, time.Now()})
    ac, err := c.Find(bson.M{}).Count()
    //第一种写法
    // query :=bson.M{"$or":[]bson.M{bson.M{"name": bson.M{"$regex": bson.RegEx{"ce", "i"}}},
    // bson.M{"key": bson.M{"$regex": bson.RegEx{"x", "i"}}}}}

  //第二种写法

regex1 := bson.RegEx{"ce", "i"} regex2 := bson.RegEx{"x", "i"}
query :
= bson.M{"$or": []bson.M{bson.M{"name": regex1}, bson.M{"key": regex2}}}
fmt.Println(query)
count, err := c.Find(query).Count()
fmt.Printf("All Count: %d ,Filter count:%d", ac, count)
}