Nodejs 怎样用 MongoDB 脚本访问和打印数据? // 找到了临时方案
Nodejs 怎样用 MongoDB 脚本访问和打印数据? // 找到了临时方案
简单的操作, 我从 Mongo Shell 尝试有成功的,
con = new Mongo('192.168.1.11')
db = con.getDB('demo')
db.auth('name', 'passwd')
rs.slaveOk()
db.demoofdemo.find()
能打印出一些数据内容(具体变量名替换了), 但是内容保存为脚本却无法运行成功,
或者说没有正确的反应:
➤➤ mongo demo.js
MongoDB shell version: 2.4.3
connection to: test
➤➤ mongo demo.js
MongoDB shell version: 2.4.4-pre-
connecting to: test
我应该怎样用脚本去快速查看数据库内容呢?
➤➤ mongo < demo.js
用重定向现在能正常跑命令了, 不过无法打印出数据. 似乎 mongodb shell 不是输出到 stdout
db.demoofdemo.find().forEach(printjson)
StackOverflow 上忘了哪个问题, 看到这个方案, 可以打印了…
要使用 Node.js 通过 MongoDB 脚本访问并打印数据,可以使用 mongodb
包来实现。下面是一个简单的示例,展示了如何连接到 MongoDB 数据库、查询数据,并将其打印出来。
示例代码
首先,确保你已经安装了 mongodb
包:
npm install mongodb
然后,你可以创建一个 JavaScript 文件(例如 mongoDemo.js
),并在其中编写以下代码:
const { MongoClient } = require('mongodb');
async function main() {
const uri = "mongodb://name:passwd@192.168.1.11:27017/demo"; // 替换为你的连接字符串
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
try {
await client.connect();
console.log("Connected to MongoDB");
const database = client.db('demo');
const collection = database.collection('demoofdemo'); // 替换为你的集合名称
const cursor = collection.find({});
await cursor.forEach(doc => console.log(doc));
} catch (err) {
console.error(err);
} finally {
await client.close();
}
}
main().catch(console.error);
解释
-
引入
mongodb
包:const { MongoClient } = require('mongodb');
-
连接到 MongoDB:
const uri = "mongodb://name:passwd@192.168.1.11:27017/demo"; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
这里使用了完整的 URI,包括用户名、密码、主机地址和数据库名称。
-
连接数据库并查询数据:
await client.connect(); console.log("Connected to MongoDB"); const database = client.db('demo'); const collection = database.collection('demoofdemo'); const cursor = collection.find({}); await cursor.forEach(doc => console.log(doc));
使用
find({})
查询所有文档,并通过forEach
遍历结果集,将每个文档打印到控制台。 -
关闭连接:
await client.close();
运行脚本
保存文件后,可以通过 Node.js 运行该脚本:
node mongoDemo.js
这样,你就可以通过 Node.js 脚本连接到 MongoDB 并打印出所有文档。这种方式比直接使用 MongoDB Shell 更加灵活,特别是在需要自动化任务时。
要在 Node.js 中使用 MongoDB 访问和打印数据,你可以使用 mongodb
这个 npm 包。以下是一个简单的示例,展示了如何连接到 MongoDB 并打印集合中的数据。
首先,你需要安装 mongodb
包:
npm install mongodb
然后,你可以创建一个脚本文件(比如 mongoDemo.js
)来实现这一功能:
const { MongoClient } = require('mongodb');
async function run() {
const uri = "mongodb://name:passwd@192.168.1.11:27017/?authSource=demo";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
try {
await client.connect();
const database = client.db('demo');
const collection = database.collection('demoofdemo');
// 查询所有文档
const cursor = collection.find({});
await cursor.forEach(doc => console.log(doc));
} finally {
await client.close();
}
}
run().catch(console.error);
在这个脚本中:
- 使用
MongoClient
连接到 MongoDB 数据库。 - 使用
find()
方法查询集合中的所有文档。 - 使用
forEach
遍历查询结果,并将每个文档打印到控制台。 - 最后关闭数据库连接。
你可以通过运行 node mongoDemo.js
来执行这个脚本,它将会连接到指定的 MongoDB 服务器并打印出集合中的数据。
这样,你就可以在 Node.js 中轻松地访问和打印 MongoDB 中的数据了。