2014-12-05 13 views
5

próbuję przekonwertować ten JS MongoDB zapytanie do idź MgO zapytanie:

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

To, co mam tak daleko, ale to nie działa:

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

EDYCJA: Wydaje się, że teraz działa. Może gdzieś mam literówkę.

+1

Składnia fragmencie wygląda poprawnie. Czy możesz pokazać więcej swojego kodu? –

Odpowiedz

13

Powyżej znajduje się pełna przykładów, które działa dobrze dla mnie (z Go 1.4 i 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) 
} 
Powiązane problemy