我有一個名為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"
}
如何在沒有陣列的情況下設定原始值?提前致謝
uj5u.com熱心網友回復:
似乎 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 游樂場供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350926.html
