node.js - 当某些数据从另一个集合中删除但两个集合都在同一个集群下时,更新 MongoDB 集合中的数据
问题描述
当某个数据的时间戳在同一集群下的另一个集合中过期时,是否可以更新 MongoDB 中一个集合中的某个字段?如果可以,你能举个例子吗?
我要完成的示例:collection1: [{ name:"ABC", Age:26, value:true }]
Collection2:[{名称:“ABC”,结果:“通过”}]
所以,如果名称为 ABC 的数据在 collection2 中过期,我想在 collection1 中将 ABC 的值更改为 false。
解决方案
我知道这不完全是您想要的,但是通过此查询,您可以在不更新 col1 的情况下获得相同的结果,如果 col2 中没有特定名称的任何数据,则使用聚合并加入两个集合返回值为 false 否则为 true
db.col1.aggregate([
{$lookup:{
from:"col2",
localField:"name",
foreignField :"name",
as:"t"
}},
{
$project:{
name:1,
Age:1,
value:{$cond:{ if: { $eq: [ [], "$t" ] }, then: false, else: true }}
}
}
])
推荐阅读
- html - 将元素定位在使用绝对定位的兄弟元素之下
- c++ - 我的超类中带有结构定义的模板问题
- vba - 如何从 MS Access 使用 VBA 发送 HTML 电子邮件
- python - 正则表达式匹配多个列表中的所有字符串
- windows - 如何将我最新的 NodeJS/TypeScript 分支提交持续部署到 Windows 机器上?
- amazon-web-services - 如何识别 AWS S3 存储桶中占用带宽最多的对象?
- java - 如何在@ApiOperation for Swagger 的响应类中注入动态对象
- c++ - 来自方法的 C++ 引用变量
- spring - ARJUNA017017:Oracle 的资源登记失败异常,但 MySQL 没有
- r - 基于数据集的特征在R中有条件地实现代码