VBS连接MongoDB数据库教学

本文讲述了作者在帮助公司部门实现VBS连接MongoDB功能时遇到的挑战,包括ODBC驱动的配置难题,最终通过引入Python和pymongo库解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间又懒惰了,打了几天游戏,o(╥﹏╥)o。不行还是要坚持学习,坚持更新。

今天更新这篇文章,是公司别的部门找我帮忙实现的一个功能。我一开始一听简单的一b,就连个数据库么, 我java开发工程师什么语言不会,都一个吊样。结果这个活, 干了好几天,哈哈,当然这期间大部分的时间不是写代码,是调试平台,我司有一个自己的自动化平台,我只想对这个平台说:你星星个星星星。

简单介绍一下这两个东西。

VBS 的全称是 Visual Basic Scripting Edition。VBS 是一种基于 Visual Basic 的脚本语言,由微软开发并广泛应用于 Windows 系统中。它主要用于编写和执行各种自动化任务、批处理脚本和简单的程序逻辑。VBS 脚本可以在命令行环境下运行,也可以嵌入到 HTML 页面中作为客户端脚本来实现交互和动态效果。

MongoDB是一种开源的、面向文档的 NoSQL(非关系型)数据库管理系统。它以高度灵活的数据模型和可扩展性而闻名,适用于处理大量结构不固定或频繁变化的数据。

好吧,下面赶快说一下我的实现方案。

方法一

vbs连接数据库代码

Dim conn
Set conn = CreateObject("ADODB.Connection")

' 配置连接字符串
conn.ConnectionString = "DRIVER={CData ODBC Driver for MongoDB};SERVER=192.168.1.130;DATABASE=Battery;UID='';PWD='';"

' 打开数据库连接
conn.Open

' 执行查询
Dim rs,i
Set rs = CreateObject("ADODB.Recordset")

rs.Open "SELECT * FROM MKL_20231202163921_001", conn
i = 0
' 处理查询结果
Do While Not rs.EOF
    ' 处理每一行数据
	If i<5 Then
    ' 如果条件为真,则执行这段代码
		MsgBox rs.Fields("Channel").Value
	End If
    i = i + 1
    rs.MoveNext
Loop

' 关闭记录集和连接
rs.Close
conn.Close

没错就这么简单。这就写完了 。

但是!但是!但是!

这里面有个最麻烦的地方,就是下边我放的这个图,这个链接字符串中的DRIVER部分,这就是连接MongoDB的ODBC驱动,只有电脑先配置好了驱动才能连接成功,如果你们直接拷贝我上面的代码,那是肯定连接失败的,会提示你找不到指定驱动。

这个ODBC驱动是真的难找,因为MongoDB的官网就不提供VBS连接所需的ODBC驱动。(它应该就不支持vbs去连接了)

下面这个图是我下载的所有有关MongoDB的ODBC驱动,但是最后都无极告终,因为我确实太菜了,不太会用,有一个 mongodb-connector-odbc-1.0.0-win-64-bit 这个驱动好想还要配合什么BI控制器,我真是大蒙圈,百度查了很久也没有看懂,百度的资料也很少。

后来,经过不懈的努力我中找到了我代码中的 CData ODBC Driver for MongoDB 驱动。然后开始配置系统的ODBC驱动没下图。

前提驱动下载地址:MongoDB ODBC Driver: ODBC Driver for MongoDB - CData Software

1、再开始菜单直接搜索ODBC

2、点击添加

3、 完成

4、把对应的MongoDB信息填一下,然后test connection  ,成功就行了,最后点击OK。

5、然后就创建好了,我们的代码中的DRIVER要写下面这个驱动程序下面的名字。

OK,到目前位置,我这个代码就真跑通了。 

但是!但是!但是!这个驱动是花钱的!o(╥﹏╥)o

当时公司这个项目很急,所以想着花钱就花钱吧,能快点解决就行,但是这个CData的官网,服了,不能直接买,非要发邮件沟通,他们回复还很慢。

所有身为无所不能的java开发人员,我就只能另行其他方法。

方法二

引入第三方MongoDB官网提供的ODBC的对应的语言,后来选择Python,因为他也是工具类语言,不需要编译很快,当然我一开始想到的是用java来连接,但是为了这一个功能,引入java实在是太臃肿了。所有最后思路是:

VBS 连接 Python 连接 MongoDB

VBS 代码

Dim WshShell, pythonInterpreter, pythonScript
' 创建 WshShell 对象
Set WshShell = CreateObject("WScript.Shell")
' 构建运行命令  调用Python脚本
cmd = "python.exe D:\bihe\connect.py" 
' 运行 Python 脚本
WshShell.Run cmd, 0, True

' --------------------延迟1秒,等待python脚本写入数据-------------------------
WScript.Sleep 1000
'----------------------- 数据获取----------------------------------
call jsonToObject()
function jsonToObject()
    Dim filePath, fileContent, jsonObject

    ' JSON 文件路径
    filePath = "D:\bihe\data.txt"

    ' 读取 JSON 文件内容
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.OpenTextFile(filePath)
    fileContent = file.ReadAll
    file.Close

	'打印数据
	WScript.Echo fileContent
end function

Python 代码 :这里要先安装Python,一般安装完Python会自带pip,最后在安装一下Python连接MongoDB的驱动包,直接使用命令:

pip install pymongo

如果是python3以上运行下边这个

pip3 install pymongo

from pymongo import MongoClient

# MongoDB 连接字符串
uri = "mongodb://10.10.168.150:27017"

# 连接到 MongoDB
client = MongoClient(uri)

# 选择数据库和集合
database = client['testdb']
collection = database['testdb']

# 查询数据
query = {}  # 查询条件(可根据需求修改)
# data = collection.find(query)
data = collection.find_one(query)

file_path = "D://bihe//data.txt"

# 打开文件以进行写入,如果文件不存在则创建新文件
file = open(file_path, "w")

for document in data:
    print(document)
    # 写入内容到文件
    file.write(document)

# 关闭连接
client.close()

# 关闭文件
file.close()
print("写入文件完成")

OK,最后就这样解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值