Mongoose 中的 Array 数据操作技巧

在 MongoDB 数据库中,Array 是一种常见的数据类型,而在使用 Mongoose 进行开发时,对 Array 的操作也是不可避免的。本文将介绍 Mongoose 中对 Array 数据的操作技巧,包括增加、删除、更新和查询等。

1. 增加 Array 数据

1.1 push

push 方法用于向 Array 中新增一个元素,该方法会直接修改原始数据。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: [] });

user.hobbies.push('reading');
user.save();

1.2 addToSet

addToSet 方法用于向 Array 中新增一个元素,如果该元素已经存在,则不进行操作。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: [] });

user.hobbies.addToSet('reading');
user.hobbies.addToSet('reading');

user.save();

2. 删除 Array 数据

2.1 pull

pull 方法用于从 Array 中删除一个元素,该方法会直接修改原始数据。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: ['reading', 'swimming'] });

user.hobbies.pull('reading');

user.save();

2.2 pop

pop 方法用于从 Array 中删除最后一个元素,该方法会直接修改原始数据。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: ['reading', 'swimming'] });

user.hobbies.pop();

user.save();

3. 更新 Array 数据

3.1 set

set 方法用于更新 Array 中指定位置的元素,该方法会直接修改原始数据。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: ['reading', 'swimming'] });

user.hobbies.set(0, 'writing');

user.save();

3.2 update

update 方法用于更新 Array 中符合条件的元素,该方法会直接修改原始数据。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const user = new User({ name: 'Tom', hobbies: ['reading', 'swimming'] });

user.hobbies.update({ $elemMatch: { $eq: 'reading' } }, { $set: { $: 'writing' } });

user.save();

4. 查询 Array 数据

4.1 $in

$in 操作符用于查询 Array 中包含指定元素的文档。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const users = await User.find({ hobbies: { $in: ['reading'] } });

4.2 $all

$all 操作符用于查询 Array 中同时包含多个指定元素的文档。示例如下:

const userSchema = new mongoose.Schema({
  name: String,
  hobbies: [String]
});

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

const users = await User.find({ hobbies: { $all: ['reading', 'swimming'] } });

总结

本文介绍了 Mongoose 中对 Array 数据的操作技巧,包括增加、删除、更新和查询等。对于开发者来说,了解这些技巧可以更加高效地操作 Array 数据,提高开发效率。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658bfc86eb4cecbf2d14e7ed


纠错
反馈