var objectId = require('mongodb').ObjectId; const mongoose = require("mongoose"); var SchemaObj = mongoose.Schema; DB_URL = "mongodb://localhost:27017/admin"; mongoose.connect(DB_URL); //建立连接 /* * 链接成功 */ mongoose.connection.on("connected", () => { console.log("数据库链接成功!"); }); /** * 链接异常 */ mongoose.connection.on("error", err => { console.log("数据库链接失败!" + err); }); /** * 链接断开 */ mongoose.connection.on("disconnected", () => { console.log("数据库链接中断!"); }); const UserSchema = new SchemaObj({ name: { type: String, required: true }, password: { type: String, required: true }, avatar: { type: String }, type:{ type: String, required: true }, date: { type: Date, default: Date.now } }); const User = mongoose.model("users", UserSchema); const UserDataSchema = new SchemaObj({ name: { type: String, required: true }, password: { type: String, required: true }, avatar: { type: String }, type:{ type: String, required: true }, date: { type: Date, default: Date.now } }); const UserData = mongoose.model("userData", UserDataSchema); let query = User.find({}); let pageSize = 2; //查询数量 let pageCount = 1; //查询页码 let insertFlag = true; //是否添加数据 let setTime = setInterval(() => { let startPage = (pageCount - 1) * pageSize; //开始条数 query.limit(pageSize); //设置查询条数 query.skip(startPage); //开始条数 console.log("pageSize", pageSize, "startPage", startPage, "pageCount", pageCount) pageCount += 1; query.exec((err, data) => { if (err) throw err; if (data.length < pageSize) { console.log('close'); clearInterval(setTime); } for (var i = 0; i < data.length; i++) { const userData = new UserData({ _id: data[i]._id, name: data[i].name, password: data[i].password, type: data[i].type, avatar: data[i].avatar, date: data[i].date }); //去除重复数据 UserData.findOne({ _id: objectId(data[i]._id) }, function (err, doc) { if (err) throw err; if (doc != null) { insertFlag = false; } } ); if (insertFlag) { userData .save() .then('同步数据: ' + JSON.stringify(userData)) .catch(err => console.log(err)); } } }); }, 1000);