📜  添加到数组 mongoose - Javascript (1)

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

添加到数组 mongoose - Javascript

在使用 Mongoose 操作 MongoDB 数据库时,有时候需要往一个数组字段中添加数据。本文将介绍如何使用 Mongoose 添加数据到数组中。

1. 定义 Schema

首先,在定义 Schema 时需要为数组字段指定数据类型,例如:

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

const userSchema = new Schema({
  username: String,
  email: String,
  favorites: [String]    // 定义数组类型字段
});

const User = mongoose.model('User', userSchema);

module.exports = User;

在上面的示例代码中,定义了一个名为 User 的模型,其中包含了一个名为 favorites 的数组字段。这里的 favorites 的数据类型为 String

2. 添加数据到数组中

要往一个数组字段中添加一条数据,需要使用 Mongoose 提供的 $push 操作符。

例如,在上面的 User 模型中,往一条数据的 favorites 中添加一个新的喜好 movie,可以使用以下代码:

User.updateOne(
  { username: 'john' },
  { $push: { favorites: 'movie' } }
)
.then(result => console.log(result))
.catch(error => console.error(error))

上面的代码中,我们使用 updateOne 方法来更新数据,并使用第一个参数 { username: 'john' } 来指定要更新的数据。第二个参数 { $push: { favorites: 'movie' } } 使用了 $push 操作符来往 favorites 数组字段中添加一个值为 movie 的元素。

3. 批量添加数据到数组中

如果要往一个数组字段中批量添加数据,需要使用 $push 操作符的 $each 修饰符。

例如,在上面的 User 模型中,往一条数据的 favorites 中添加多个新的喜好 movie, book, music,可以使用以下代码:

User.updateOne(
  { username: 'john' },
  { $push: { favorites: { $each: ['movie', 'book', 'music'] } } }
)
.then(result => console.log(result))
.catch(error => console.error(error))

上面的代码中,第二个参数 { $push: { favorites: { $each: ['movie', 'book', 'music'] } } } 使用了 $push 操作符的 $each 修饰符,将要添加的多个元素作为数组传递给 $each 修饰符。

结束语

本文介绍了如何使用 Mongoose 添加数据到数组中,包括单个添加和批量添加数据。使用 $push 操作符可以很方便地完成这个操作。如果您有任何疑问或建议,欢迎在评论区留言。