【问题标题】:How to use variable while updating a mongo document?如何在更新 mongo 文档时使用变量?
【发布时间】:2015-02-22 09:03:31
【问题描述】:

我有一个如下所示的 mongo 集合:

{

"_id" : "FfnHWrZuvzBqAk7M5",

"0" : {
    "ids" : [ 
        "3", 
        "1"
    ]
},

"1" : {
    "who" : "3",
    "txt" : "aaa",
    "time" : "1100"
},

"2" : {
    "who" : "1",
    "txt" : "bbb",
    "time" : "1101"
},

"3" : {
    "who" : "1",
    "txt" : "ccc",
    "time" : "1101"
}

上面是一个单独的文档,它包含“_id”、“ids”,然后是从 1 到永恒具有相同字段集的其他对象。

我正在尝试通过添加下一个对象(在本例中为第 4 个)来更新文档,如下所示:

var foo = (some data here);

MNChats.update(
  { _id: Session.get('activeConversationID')},
  { $set: {foo: {who: '3', txt: 'whatever', time: '2100'} } }
);

它工作正常,但插入 'foo' 而不是存储在变量中的数字。

在这种情况下如何使用变量?

或者有没有其他方法可以在下一个数字下自动插入这个对象?

【问题讨论】:

标签: javascript mongodb variables meteor


【解决方案1】:

您需要创建一个对象,其中foo 成为键,并将其传递给$set 运算符。

var whatToSet = {};
var foo = 4;  // or your number you want to store
whatToSet[foo] = {who: '3', txt: 'whatever', time: '2100'};
MNChats.update(
  {_id: Session.get('activeConversationID')},
  { $set: whatToSet }
);

您可能还想将此数据结构修改为数组,这样您就可以使用$push operator

【讨论】:

  • 很高兴我能提供帮助,并随时为答案投票。
  • 我希望我可以,需要 15 点声望才能投票。但一旦我得到更多分数,我会记得这样做,特别是因为我花了几个小时试图弄清楚。再次感谢
猜你喜欢
  • 1970-01-01
  • 2015-11-18
  • 2021-04-23
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 2016-07-08
  • 1970-01-01
相关资源
最近更新 更多