我在更新Meteor中的mongo集合時遇到問題。如何更新MeteorJS中的MongoDB集合上的子文檔數組
也許我只是不明白如何$addtoset
的作品。
這裏是我的基本資料,或多或少這是我fixtures.js
,我初始化我的項目:
var someUser = Meteor.users.findOne("W9YEs84QFhZzJeB6j");
var NewIdea = Ideas.insert({
title: "This Is a Title",
body: "Blah Blah Blah Body Goes Here",
userId: someUser._id,
author: someUser.profile.name,
timestamp: new Date(now - 5 * 3600 * 1000),
score: [],
overallScore: 0,
votedOnBy: [],
timesVotedOn: 0
});
這是我希望它看起來像在更新後:
{
_id: "bKXXrpYmppFBfq9Kx",
title: "This Is a Title",
body: "Blah Blah Blah Body Goes Here",
userId: "W9YEs84QFhZzJeB6j",
author: "Users Name",
timestamp: ISODate("2016-06-07T20:37:05.775Z"),
score: [
{
userId: ""W9YEs84QFhZzJeB6j",
score: 1
}
],
overallScore: 1,
votedOnBy: [
"W9YEs84QFhZzJeB6j"
],
timesVotedOn: 1
}
以下是我用來更新的代碼(不工作):
Ideas.update("bKXXrpYmppFBfq9Kx", {
$addToSet: {score: {userId: someUser._id, score: 1}},
$inc: {overallScore: 1},
$addToSet: {votedOnBy: someUser._id},
$inc: {timesVotedOn: 1}
});
下面是從蒙戈控制檯的實際文件(更新之後):
{
"_id" : "bKXXrpYmppFBfq9Kx",
"title" : "This Is a Title",
"body" : "Blah Blah Blah Body Goes Here",
"userId" : "W9YEs84QFhZzJeB6j",
"author" : "Users Name",
"timestamp" : ISODate("2016-06-07T20:37:05.775Z"),
"votedOnBy" : [
"W9YEs84QFhZzJeB6j"
],
"timesVotedOn" : 1
}
注意overallScore
和score
是不存在的。
我是Meteor和Mongo的新手(可能很明顯)。有誰知道我在這裏做錯了嗎?或者我需要什麼,以便我可以做這個更新是正確的?
感謝@Michel弗洛伊德的代碼編輯:)這是乾淨多了,現在,您刪除從數據庫輸出其他非必要信息。 –
我需要這樣做,試圖找出你的問題。不幸的是你的代碼看起來是正確的,所以我仍然缺少解決方案 –