MongoDB -检查文档中某个字段是否存在value



我有一个集合,文档看起来像下面:

/* 0 */
{
    "_id" : ObjectId("5320b1c723bc746084fa7107"),
    "channels" : [ 
        3, 
        4
    ]
}

/* 1 */
{
    "_id" : ObjectId("5320b1c723bc746084fa7107"),
    "channels" : [ ]
}

我想要形成一个查询,这样我想要channel有一些值并且不为空的所有文档。

我试过了:

db.event_copy.find({"channels":{$exists:true}})

但是这仍然会返回channel中没有值的文档

需要$size操作符。要查找没有元素的,请执行以下操作

db.collection.find({ channels: {$size: 0} })

如果你知道你有一个固定的大小,那么就这样做

db.collection.find({ channels: {$size: 2} })

否则用$not

db.collection.find({ channels: {$not:{$size: 0}} })

可以与$和:

结合使用
db.collection.find({ $and: [ 
    { channels: {$not:{$size: 0}} },
    { channels: {$exists: true } }
]})

我是这样做的:

db.event_copy.find({'channels.0' : {$exists: true}}).count()

查看这里的大小操作符

db.event_copy.find( { channels: { $size: 0 } } );
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client['my_database']
col=db['my_collection']
### Input
email="test@gmail.com"
########
exist_count=col.find({"email": email},{'_id':0}).count()
if exist_count>=1:
    print("Field value is present")
else:
    print("Field value is not present")

相关内容

  • 没有找到相关文章

最新更新