python 使用find() OR find_one()查询MongoDB的结果进行为空判断

背景:最近做的一个脚本是在查询MongoDB数据库对结果做一个是否为空的兼容处理,如果查询结果为空则提示:结果为空,否则则继续进行数据处理

两种MongoDB的查询方法,find()和find_one(),这两个方法的区别:

find_one()

匹配第一条满足条件的结果,这条结果以dict字典形式返回,若没有查询到,则返回None,所以可以通过collection_data is None 进行数据判定

find()

返回满足条件的所有结果,返回类型为cursor ,每个结果类型为dict字典,如果需要获取每个集合中固定的字段的值,可以使用for循环遍历,然后通过字典的取值方式获取每条集合中固定字段的值,如果我们需要判断结果是否为空,可以对通过find查询出来的个数进行判断,如果count等于0 ,则查询结果为空

data = faceDetectProjectConfig.find({"projectName": nrow_name_value})
if data.count() == 0:
    print("该条记录的项目不存在!!!!!")

总结:find()出来的是⼀个数组对象 findOne()出来的是查到的第⼀个对象

接下来继续解释一哈对象的概念:

对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示。每个对象均有标识符、类型、值

其中对象又分可变对象和不可变对象。所谓可变对象指的是,对象的内容可变,而不可变对象是指对象的内容不可变

不可变(immutable)对象:int、字符串(string)、float、数值型(number)、元组(tuple)

可变(mutable)对象:字典型(dictionary)、列表型(list)

你可能感兴趣的