[英]Python check MongoDB field exists or not
我有两个集合,一个是存储如下信息的网站:
{
"_id" : ObjectId("5ac5efd6a37efa4c0e28f5aa"),
"main_id" : 3,
"status" : "",
"website" : "http://test.com",
"last_access_time" : "2018-04-16 17:49:03",
"links" : [
{
"link_id" : "test-1",
"link" : "test1.html"
},
{
"link_id" : "test-2",
"link" : "test.html"
}
]
}
另一个是website_info ,我想在其中存储信息,例如:
{
"_id" : ObjectId("5ad72ddecf45b60dffcbf9f2"),
"main_id" : 3,
"last_access_time" : "2018-04-18 15:37:02",
"test-1" : {
"no_of_links" : 55,
"links_2" : [
{
"link" : "/home",
"link_id" : "secnd-1",
},
{
"link" : "/login",
"link_id" : "secnd-2",
},
{
"link" : "/services",
"link_id" : "secnd-3",
}
]
},
"test-2" : {
"no_of_links" : 55,
"links_2" : [
{
"link" : "/home",
"link_id" : "secnd-1",
},
{
"link" : "/login",
"link_id" : "secnd-2",
},
{
"link" : "/services",
"link_id" : "secnd-3",
}
]
}
}
我正在使用 Python3 和 mongoDB。 在这里,我想检查 main_id = 3 的website_info中的“link_id”之类的“test-1”字段是否存在。 如果存在,我将更新相同,如果不存在,我想插入新记录集。 问题是如何检查website_info集合中的字段“test-1”(这是来自网站集合的值)是否存在。 帮助表示赞赏。
在我的例子中,link_id 在 website_info 集合中是唯一的。 所以不需要检查 main_id,只检查 link_id 就解决了我的问题,比如:
@classmethod
def find_link(self, link_id):
cursor = self.db.collection.find({link_id: {'$exists': True}} )
results = list(cursor)
return results
并检查是否存在,如:
if(len(is_exists)>0):
#do if exists
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.