python - 如果文档存在,MongoDB 返回 True

标签 python mongodb pymongo tornado-motor

如果用户 ID 已经存在,我想返回 true,否则从我的集合中返回 false。我有这个函数,但它总是返回 True

def alreadyExists(newID):
    if db.mycollection.find({'UserIDS': { "$in": newID}}):
        return True
    else:
        return False

如果用户 id 已经存在,我怎样才能让这个函数只返回 true?

最佳答案

Note: This answer is outdated. More recent versions of MongoDB can use the far more efficient method db.collection.countDocuments. See the answer by Xavier Guihot for a better solution.

find 不返回 bool 值,它返回 cursor .要检查该游标是否包含任何文档,请使用游标的 count 方法:

if db.mycollection.find({'UserIDS': { "$in": newID}}).count() > 0

如果 newID 不是数组,则不应使用 $in 运算符。你可以简单地做 find({'UserIDS': newID}).

关于python - 如果文档存在,MongoDB 返回 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163658/

相关文章:

python - 使用装饰器在定义的函数上产生 NameError

node.js - MongoDB:将 $near 运算符与 $maxDistance 一起使用时,点不在间隔内

python - 多个键的总计

python - PyMongo 和 Flask 的 Jsonify 包含转义斜杠

python - 尝试理解跨 python 模块的多处理和队列

python - 模块未找到错误: No module named 'shapefile'

MongoDB - 按客户分组并检索最高价格的文档

mongodb - pymongo - TypeError : document must be an instance of dict, bson.son.SON,或从collections.MutableMapping继承的其他类型

python - 应用具有多个参数的函数来创建一个新的 pandas 列

mongodb - mongorestore metadata.json 文件