【发布时间】:2019-08-09 16:47:17
【问题描述】:
我试图从 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你的意思是Pref作为模型。基本上似乎是一个没有其他原因的错字。 -
请检查已编辑的问题...实际上是错字但肯定有其他问题...
-
啊!您正在查看旧文件。 Mongoose: findOneAndUpdate doesn't return updated document 的重复项。缺少
{ new: true } -
@NeilLunn 谢谢兄弟,我明白了你的意思,我解决了。
标签: arrays node.js mongodb mongoose mongodb-query