📌  相关文章
📜  如何使用 Node.js 从 2 个不同的 mongoDB 集合中获取数据?(1)

📅  最后修改于: 2023-12-03 15:38:05.115000             🧑  作者: Mango

如何使用 Node.js 从 2 个不同的 mongoDB 集合中获取数据?

为了从2个不同的MongoDB集合中获取数据,我们需要使用Node.js中的Mongoose库,并使用Mongoose的connect()方法连接到MongoDB数据库。然后,我们可以使用Mongoose的model()方法定义2个不同的MongoDB集合,并使用find()方法从这些集合中查询数据。最后,我们可以使用Promise.all()方法将这些数据一起返回。

步骤1:连接到MongoDB数据库

使用Mongoose的connect()方法连接到MongoDB数据库。以下是连接到MongoDB数据库的示例代码片段。

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true, useUnifiedTopology: true})
  .then(() => console.log('MongoDB Connected'));
步骤2:定义MongoDB集合

使用Mongoose的model()方法定义2个不同的MongoDB集合,并使用find()方法从这些集合中查询数据。以下是定义MongoDB集合和查询数据的示例代码片段。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  name: String,
  age: Number
});

const ProductSchema = new Schema({
  name: String,
  price: Number
});

const User = mongoose.model('User', UserSchema);
const Product = mongoose.model('Product', ProductSchema);

const getUsers = () => {
  return User.find({});
}

const getProducts = () => {
  return Product.find({});
}
步骤3:使用Promise.all()方法返回数据

最后,我们可以使用Promise.all()方法将这些数据一起返回。以下是使用Promise.all()方法返回数据的示例代码片段。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  name: String,
  age: Number
});

const ProductSchema = new Schema({
  name: String,
  price: Number
});

const User = mongoose.model('User', UserSchema);
const Product = mongoose.model('Product', ProductSchema);

const getUsers = () => {
  return User.find({});
}

const getProducts = () => {
  return Product.find({});
}

Promise.all([getUsers(), getProducts()]).then(results => {
  const users = results[0];
  const products = results[1];
  console.log(users);
  console.log(products);
});

以上是如何使用Node.js从2个不同的MongoDB集合中获取数据的全部内容。