我在一个 MongoDb 表中有数据,需要将其复制到另一个 MongoDb 表中。第一个表有一个包含不同元素的字段(参见下面的示例),我知道如何使用它。但是,第二个表有一个字段,其中包含一个本身由不同元素组成的数组。如何引用数组中的值?
我试过 field.array[0].element 和 field.array.0.element,但这些都不起作用。
如果今天有人可以解释如何做到这一点,我将不胜感激。客户希望在一天结束前完成这项工作。我被困住了,准备好复制和粘贴数据。谢谢!
这是表 1。注意“won”是空的;我正在尝试填充它:
{
"_id" : ObjectId("5733835a836265135854b7dd"),
"won" : {
}
}
{
"_id" : ObjectId("5733835a836265135854b7de"),
"won" : {
}
}
{
"_id" : ObjectId("5733835a836265135854b7df"),
"won" : {
}
}
这是表2。我正在尝试获取元素 userId 和 screenName 的值:
{
"_id" : ObjectId("5733835a836265135854b7dd"),
"auction": ObjectId("5733833a49841cdd4eb0eef5",
"lead" : {
"bid" : NumberInt(481),
"bidders" : [
{
"userId" : ObjectId("5514d167ac52b1df65e03b4d"),
"screenName" : "mdoed",
}
]
}
}
{
"_id" : ObjectId("5733835a836265135854b7de"),
"auction": ObjectId("5733833a49841cdd4eb0eef5",
"lead" : {
"bid" : NumberInt(481),
"bidders" : [
{
"userId" : ObjectId("5514d167ac52b1df65e03b4e"),
"screenName" : "mdoed",
}
]
}
}
{
"_id" : ObjectId("5733835a836265135854b7df"),
"auction": ObjectId("5733833a49841cdd4eb0eef5",
"lead" : {
"bid" : NumberInt(481),
"bidders" : [
{
"userId" : ObjectId("5514d167ac52b1df65e03b4f"),
"screenName" : "mdoed",
}
]
}
}
这是 table1 更新后的样子:
{
"_id" : ObjectId("5733835a836265135854b7dd"),
"won" : {
"bid" : NumberInt(481),
"userId" : ObjectId("5514d167ac52b1df65e03b4d"),
"screenName" : "mdoed"
}
}
{
"_id" : ObjectId("5733835a836265135854b7de"),
"won" : {
"bid" : NumberInt(481),
"userId" : ObjectId("5514d167ac52b1df65e03b4e"),
"screenName" : "mdoed",
}
}
{
"_id" : ObjectId("5733835a836265135854b7df"),
"won" : {
"bid" : NumberInt(481),
"userId" : ObjectId("5514d167ac52b1df65e03b4f"),
"screenName" : "mdoed",
}
}
这是我尝试过的查询:
var newActiveProperties = db.table2.find({"auction": ObjectId("5733833a49841cdd4eb0eef5")}).toArray();
newActiveProperties.forEach(function(doc) {
db.table1.update(
{ "_id": doc._id, },
{ "$set": { "won.bid": doc.lead.bid, "won.userId": doc.lead.bidders[0].userId, "won.screenName": doc.lead.bidders[0].screenName
}
},
{ multi: true }
);
});
我怀疑语法 doc.lead.bidders[0].userId 是错误的,但我不确定正确的语法是什么。