如何在更新mongo文档时使用变量

How to use variable while updating a mongo document?

本文关键字:变量 文档 mongo 更新      更新时间:2024-03-30

我有一个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"、"id",然后是具有相同字段集的从1到永恒的其他对象。

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

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

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

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

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

您需要创建一个对象,其中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运算符。