MongoDB> 在Node.js中导出文档

本文档介绍了如何在Node.js环境中导出MongoDB文档,并提供了使用命令行进行导入导出的方法。首先展示了在Mongo.js文件中导出数据的步骤,然后通过命令行将数据保存为json文件。此外,还提到了文件导入的操作,强调了导入的json文件内容必须符合json格式。

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


事先已经在playground集合里面存好了文档
新建:Mongo.js:

//导入第三方包
let mongoose = require("mongoose");

//连接mongodbs数据库的自己创建的playground集合
mongoose.connect("mongodb://localhost/playgroung", { useUnifiedTopology: true,useNewUrlParser: true})
	.then(value => {
		console.log("数据库打开成功"); //最后导入的时候要把此句注释掉防止导出
	}, reason => {
		console.log("数据库打开失败"); //最后导入的时候要把此句注释掉防止导出
	}

//设定集合规则,规则与创建Stu集合时的集合规则保持一致
const StuSchema = new mongoose.Schema({
	age: Number,
	name: String,
	isDead: Boolean
})
//创建集合并应用规则
const Stu = mongoose.model('Stu', StuSchema);

//打印集合里的所有文档,默认集合里面已经存好了文档
Stu.find().then(result => console.log(JSON.stringify(result, (key, value) => {
	if(key == "_id" || key == "__v") {  //默认会有_id和__v属性,剔除它们
		return undefind;
	} else {
		return value;
	}
})))

介绍几个常用命令行shell命令

> mongo  ## 进入mongodb数据库

> show dbs ## 查看所有数据库

> use <db> ##使用某一个数据库

> show collections ## 查看当前数据库的所有集合

在命令行中用管道将标准输入流打印到同目录下json文档中(会自动生成)

node Mongo.js > ./stu.json

在Node.js中导出

Mongo.js

let mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/playgroung", { useUnifiedTopology: true,useNewUrlParser: true})
	.then(value => {
		//数据库打开成功
	}, reason => {
		//数据库打开失败
	}

const StuSchema = new mongoose.Schema({
	age: Number,
	name: String,
	isDead: Boolean
})

const Stu = mongoose.model('Stu', StuSchema);

//添加文档作为示例
Stu.create({
	age:16,
	name: "lihua",
	isDead: false
});
Stu.create({
	age:14,
	name: "wanggang",
	isDead: false
});
Stu.create({
	age:64,
	name: "zhanglu",
	isDead: false
});
Stu.create({
	age:98,
	name: "liming",
	isDead: true
});

执行Mongo.js

> node Mongo.js

使用命令行查看:
在这里插入图片描述
看到了我们存入的数据,结果没有问题

当然也可以在Mongo.js文件中追加打印语句,而不使用命令行查看:

Stu.find().then(resule => console.log(result)

但是由于Stu.find().then()先于Stu.create()执行,因此第一次打印不出数据

为了输出保存为json格式的文件
追加如下方法

let mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/playgroung", { useUnifiedTopology: true,useNewUrlParser: true})
	.then(value => {
		//数据库打开成功
	}, reason => {
		//数据库打开失败
	}

const StuSchema = new mongoose.Schema({
	age: Number,
	name: String,
	isDead: Boolean
})

const Stu = mongoose.model('Stu', StuSchema);

//添加文档作为示例
Stu.create({
	age:16,
	name: "lihua",
	isDead: false
});
Stu.create({
	age:14,
	name: "wanggang",
	isDead: false
});
Stu.create({
	age:64,
	name: "zhanglu",
	isDead: false
});
Stu.create({
	age:98,
	name: "liming",
	isDead: true
});

//把js对象转为json对象并打印输出
Stu.find().then(result => console.log(JSON.stringify(result, (key, value) => {
	if(key == "_id" || key == "__v") { 
		return undefind;
	} else {
		return value;
	}
})));

执行:

node Mongo.js > ./stu.json

查看stu.json文件
在这里插入图片描述

命令行导入/导出

文件的导入也十分简单,这里先删除Stu的集合
在这里插入图片描述
输入:

/*
* param@ playgound:要导入到的数据库(可自动生成)
* param@ stus:要导入到的集合(可自动生成)
* param@ --jsonArray:代表导入的是json数组,如果不是对象数组(即单个对象),可以换为--file
*/

mongoimport -d playground -c stus --jsonArray ./stu.json  ##导入到playground数据库的stus集合中

出现如下提示,即为成功,注意.json文件中必须是符合json的内容,不能含有其他不符合json语法的内容
在这里插入图片描述
文件的导出:

/*
* param@ playgound:从哪个数据库导出
* param@ stus:要导出的集合
* param@ -o:导出的位置
*/

mongoexport -d playground -c stus -o ./stu.json  ##把playground数据库的stus集合导出到stu.json中

但是直接通过命令行的方式导出没有过滤方式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值