注:
由于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 天山雪河那个湾}]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐