注:
由于mongodb中我们可以很方便的在插入数据的时候动态创建文档中的字段,所以有些时候同一个集合中的文档,有些存在如:A字段,有些可能就没有,这个时候我们想知道集合里面,哪些文档存在某些字段以及不存在某些字段,我们可以使用exists语法来查询。
关键字$exists
语法定义
Syntax: { field: { $exists: <boolean> } }
其中boolean的值可以是true或者false,同时也可以使用数字:0或者其它任意值代替,0和false表示不存在该字段,true和其它任意数字表示存在。
存在的含义是:不管值是什么它都存在,就算是null也不能其否定存在的意义。
案例:
操作:通过golang mongo-driver来获取字段age不存在的数据。
func findMoreDoc() []name {
cursor,err := db.Collection("user").Find(context.TODO(),
bson.D{{"age",bson.D{{"$exists",0}}}})
if err != nil {
log.Fatal(err)
}
defer cursor.Close(context.TODO())
var ns []name
err = cursor.All(context.TODO(),&ns)
if err != nil {
log.Fatal("All解析异常->",err)
}
fmt.Println(ns)
return ns
}
结果:
[{peng 0 } {song 0 }]
操作:将$exists的值设为2,查找存在age字段的值。
操作同上,由于代码大部分相似,就不贴了…
结果:
[{pengjiansong 59 } {pengjiansong 43 天山雪河那个湾}]