node.js - 返回填充的项目匹配条件
问题描述
我正在尝试更新 mongoDB 和 Node.js 中的内部文档。我有一个引用另一个集合的集合。通过访问第一个集合,我想更新第二个集合。
这是架构结构:
// User
mongoose.Schema({
email: {
type: String,
required: true
}
listsID: {
type: [{ type: mongoose.Types.ObjectId, ref: 'List' }],
required: false
}
});
// List
mongoose.Schema({
name: {
type: String,
required: true
}
});
我想做的是根据用户获取一个列表文档,然后更新我刚刚检索到的列表。它看起来像下面这样:
const list = await User.findById(someID).find({name: someName});
以上显然不是正确的方法,但这就是我想要实现的。这样做的正确方法是什么?
基本上,我想更新listID
特定用户的数组
编辑
这是用户使用 findByID 的结果数据:
没有填充
{
"listsID": [
"5d902b1b63ebcf9fff238faa",
"5d90e61c185bd8cfafa04c6e"
],
"_id": "5d8e28562d657f6ebb67c357",
"email": "someEmail@gmail.com"
}
填充
{
"listsID": [
{
"_id": "5d902b1b63ebcf9fff238faa",
"name": "First List", // This is what I want to update
},
{
"_id": "5d90e61c185bd8cfafa04c6e",
"name": "another list",
}
],
"_id": "5d8e28562d657f6ebb67c357",
"email": "someEmail@gmail.com"
}
解决方案
推荐阅读
- matlab - 如何在保持矩阵完整的同时对矩阵行执行操作?
- ruby - 如何从 Ruby 中的嵌套 CSV 创建哈希?
- angular - 如何一次获取两个监听 http.get 的 observable 的值?
- google-analytics - Google Analytics创建项目并关联firebase后,为什么没有数据查看问题?
- ros - 如何在 ROS 中使用 OpenCV-Python
- c# - VPN / SignalR 无法协同工作。我能做些什么?
- java - 如何在 java 中获取 Field 对象的原始属性?
- sql - 如何为常量值列表执行存储过程?
- python - 为什么这个 tkinter 程序冻结?
- javascript - 如何从烧瓶接收 .js 文件上的 jsonify 变量