bson.M
là một loại bản đồ, vì vậy bson.M{ ... }
là một chữ bản đồ
. Nếu các cặp khóa-giá trị được viết thành nhiều hàng thì mỗi hàng phải kết thúc bằng dấu phẩy. Để biết chi tiết, hãy xem Làm cách nào để ngắt một dòng mã dài trong Golang?
Ngoài ra không có "giao diện" theo nghĩa đen, bỏ đó. Giá trị của interface{}
kiểu có thể giữ / bọc bất kỳ giá trị nào, bao gồm bson.M
giá trị. Và giao diện interface{}
tạo giá trị là tự động, bạn thậm chí không cần một loại chuyển đổi
.
Cú pháp đúng:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
Tương tự, nếu bạn sử dụng bson.D
type (là một lát cắt), các dòng không kết thúc bằng dấu ngoặc đóng của nghĩa đen phải kết thúc bằng dấu phẩy, ví dụ:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}