以下所有例子中結構定義如下:
type
user
struct
通過func (c *collection) find(query inte***ce{}) *query
來進行查詢,返回的query struct可以有附加各種條件來進行過濾。
通過query.all()
可以獲得所有結果,通過query.one()
可以獲得乙個結果,注意如果沒有資料或者數量超過乙個,one()會報錯。
條件用bson.m
,注意key必須用mongodb中的欄位名,而不是struct的欄位名。
1.1、查詢所有
var users user
c.find(nil).all(&users)
上面**可以把所有users都查出來:
1.2、根據objectid查詢
id := "5204af979955496907000001"
objectid := bson.objectidhex(id)
user := new(user)
c.find(bson.m).one(&user)
更簡單的方式是直接用findid()方法:
c.findid(objectid).one(&user)
注意這裡沒有處理err。當找不到的時候用one()方法會出錯。1.3、單條件查詢
=($eq)
c.find(bson.m).all(&users)
!=($ne)
c.find(bson.m}).all(&users)
>($gt)
c.find(bson.m}).all(&users)
<($lt)
c.find(bson.m}).all(&users)
>=($gte)
c.find(bson.m}).all(&users)
<=($lte)
c.find(bson.m}).all(&users)
in($in)
c.find(bson.m}}).all(&users)
1.4、多條件查詢
and($and)
c.find(bson.m).all(&users)
or($or)
c.find(bson.m, bson.m}}).all(&users)
通過func (*collection) update來進行修改操作。
func (c *collection) update(selector inte***ce{}, change inte***ce{}) error
注意修改單個或多個字段需要通過$set操作符號,否則集合會被替換。
2.1、($set)
//修改欄位的值
c.update(
bson.m,
bson.m}
)
2.2、inc($inc)//字段增加值
c.update(
bson.m,
bson.m}
)//欄位num陣列第三個數增加值
c.update(
bson.m,
bson.m})
2.3、push($push)//從陣列中增加乙個元素
c.update(
bson.m,
bson.m}
)
2.4、pull($pull)//從陣列中刪除乙個元素
c.update(
bson.m,
bson.m}
)
2.5、刪除c.remove(bson.m)
Go 在 MongoDB 中對陣列元素進行查詢
mongodb中根據陣列子元素進行匹配,有兩種方式。使用 陣列名 子元素欄位名 的方式進行匹配。使用 陣列名 elemmatch 的方式。不同點在於所匹配的主體不同。陣列名 子元素欄位名 的方式匹配的主體為 陣列名 適用於單個條件,如果是多個條件,則變成陣列子元素之間的 或 運算。請看示例 假設某個...
MongoDB中常用語句
delete 刪除 刪除乙個集合 db.collection.deleteone 刪除多個集合 db.collection.deletmany remove 刪除 刪除所有的name 李四的資料 db.student.remove 只刪除一條 男的資料 僅刪除一條 db.student.remove...
解析PHP中常見的mongodb查詢操作
字串為 querys array name shian 數值等於多少 querys array number 7 數值大於多少 querys array number array gt 5 數值大於等於多少 querys array number array gte 2 數值小於多少 querys ...