在 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