mongodb - 如何将文档中的字段和值复制到mongodb中不同集合中的另一个文档
问题描述
我有一个名为X的集合,其中包含一个如下所示的文档:
{
"uid": "dfdf"
}
我有另一个名为Y的集合,它也包含一个如下所示的文档:
{
"name": "bfbf"
}
我想从集合Y添加到文档,集合 X中的字段和值,所以它看起来像这样:
{
"uid": "dfdf",
"name": "bfbf"
}
我在 Y 集合上运行了下一个代码:
{$set : {"uid" : {"$query": {"$q": {}, "$ns": "**X**", "$p": "uid"}}}}
但是该值是用这样的数组设置的:
{
"uid": ["dfdf"],
"name": "bfbf"
}
如何在没有数组的情况下设置原始值?提前致谢
解决方案
似乎 OP 只是想进行无条件查找并将该字段分配uid
到集合 Y
db.Y.aggregate([
{
"$lookup": {
"from": "X",
"pipeline": [],
"as": "x"
}
},
{
"$unwind": "$x"
},
{
$set: {
"uid": "$x.uid"
}
},
{
"$unset": "x"
}
]).forEach(function(doc){
db.Y.update({_id: doc._id}, {$set: {uid: doc.uid}});
});
这是Mongo游乐场供您参考。
推荐阅读
- javascript - javascript for循环将momentjs日期增加1天,
- firebase - Firebase Firestore 在 Vue 中返回一个 Promise
- react-native - 反应日期选择器错误
- networking - 优化路由表大小和跳数
- javascript - 根据函数的返回值设置变量 - Discord Bot
- sorting - 使用 Elasticsearch 根据得分最高(匹配)的嵌套字段值对父文档进行排序
- python - 所有中心都在 K-Means 聚类上重合
- python - which() 命令只能使用 ./ 查找可执行文件
- node.js - 将数据附加到 REDIS 哈希的有效方法
- c++ - Qt tabView背景颜色变化