arrays - Mongoose 查询数组...改变数组的元素
问题描述
我试图从 MongoDB 数据库中的数组中删除所有元素,然后插入所有新的数组元素。
我的模型是:
const mongoose = require('mongoose');
var schema = new mongoose.Schema({
email : {
type : String
},
password : {
type : String
},
stocks : {
type : [String]
}
}, {versionKey:false}, {_id: false});
module.exports = final = mongoose.model('users', schema);
然后我的股票数组将具有一些值。我正在尝试使用以下命令删除这些值:我在 Stack Overflow 的某个地方读到,要清空数组,您可以做很多事情,但一组是最快的方法。如果您知道其他比这更好的方法,请告诉我。
final
.findOneAndUpdate({email:"abcd@gmail.com"}, {$set:{stocks:[]}})
.then(()=>console.log("Data removed."))
.catch(err=>console.log(err));
一旦数据被删除,这意味着数组将被清空。然后我从我的局部变量中分配整个新数组,如下所示:
const newData = {
stocks : ["abcd", "wxyz"]
};
现在我正在尝试使用以下命令将这个新数组分配给我的数据库:
final
.findOneAndUpdate({email:"abcd@gmail.com"}, {$set:{stocks:newData.stocks}});
它正在成功清空数组,但是当我分配新数组时它不起作用并显示一个空数组。请问有人可以帮我吗?
解决方案
尝试
final.findOneAndUpdate({email:"abcd@gmail.com"}, {$set:{stocks:newData.stocks}}, {new: true})
.then((doc)=>console.log(doc))
.catch(err=>console.log(err));
如果您不使用回调,则不会执行查询。
如果回调被传递,则查询执行,否则返回一个 Query 对象。 猫鼬文档
推荐阅读
- laravel - 使用 Laravel 中的 Guzzle 从外部 API 获取正文中的所有数据
- reactjs - 如何将我的 Docker React 容器配置为仅在需要时安装模块?
- c - VS code c 编程,我该如何修复-Makefile:2: *** 缺少分隔符。停止。?
- amazon-web-services - 跨 AWS 账户的 DynamoDB 复制
- javascript - 在搜索文本时隐藏 h4
- python - 在重新加载不同目录中以编程方式导入的文件时找不到 ModuleSpec
- python-3.x - 如何与龙卷风 IOLoop 同时运行长时间运行的阻塞功能
- r - 不应该在 org 模式下以 R 代码块打印的输出
- javascript - 将 Select 的选项替换为 Checkbox
- html - 如何使用 Div 在页面上格式化 2 个不同的表格?