MongoDB查询之exists

本文介绍了如何在MongoDB中利用$exists关键字查询文档中字段是否存在。通过示例展示了在Golang中查找年龄(age)字段不存在及存在的文档,并提供了相关查询代码。示例结果显示,当$exists参数为0时,返回的是没有age字段的用户;当$exists参数为任意非0值时,返回的是包含age字段的用户记录。
摘要由CSDN通过智能技术生成

注:
由于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 天山雪河那个湾}]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值