gpt4 book ai didi

go - 如何在 mgo 中构造 $or 查询

转载 作者:IT老高 更新时间:2023-10-28 13:05:40 25 4
gpt4 key购买 nike

我正在尝试将此 JS MongoDB 查询转换为 Go mgo 查询:

var foo = "bar";
db.collection.find({"$or": [ {uuid: foo}, {name: foo} ] });

这是我到目前为止所得到的,但它不起作用:

conditions := bson.M{"$or": []bson.M{bson.M{"uuid": name}, bson.M{"name": name}}}

编辑:它现在似乎确实有效。也许我在某个地方打错了。

最佳答案

这是一个对我来说很好用的完整示例(使用 Go 1.4 和 MongoDB 2.6.5)

package main

import (
"fmt"
"log"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)

type Person struct {
Num int
Uuid string
Name string
}

func main() {

// Connect to the database
session, err := mgo.Dial("localhost")
if err != nil {
panic(err)
}
defer session.Close()

// Remove people collection if any
c := session.DB("test").C("people")
c.DropCollection()

// Add some data
err = c.Insert(&Person{ 1, "UUID1", "Joe"},
&Person{ 2, "UUID2", "Jane"},
&Person{ 3, "UUID3", "Didier" })
if err != nil {
log.Fatal(err)
}

result := Person{}
err = c.Find( bson.M{ "$or": []bson.M{ bson.M{"uuid":"UUID0"}, bson.M{"name": "Joe"} } } ).One(&result)
if err != nil {
log.Fatal(err)
}

fmt.Println(result)
}

关于go - 如何在 mgo 中构造 $or 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com