MongoDB插入字段是一个javascript变量?

时间:2013-08-06 16:00:22

标签: javascript mongodb meteor

所以我试图在MongoDB中插入一个新字段,虽然它会接受我的Javascript变量作为数据,但它不会接受它作为新的字段名称:

function appendInformation(question, answer) {
    Sessions.update({ _id: Id }, { question : answer });
}

它会插入正确答案,但在文档中列为question: {answer}而不是{question} : {answer}

1 个答案:

答案 0 :(得分:4)

您需要使用$set使用新字段更新Session文档。

function appendInformation(question, answer) {
    var qa = { };
    qa[question] = answer;
    Sessions.update({ _id: Id }, { $set : qa });
}

$set documentation

> db.so.remove()
> var qa={"question 1" : "the answer is 1"};
> db.so.insert(qa);
> db.so.find()
{ "_id" : ObjectId("520136af3c5438af60de6398"),
               "question 1" : "the answer is 1" }
> var qa2={"question 2" : "the answer is 2"};
> db.so.update({ "_id" : ObjectId("520136af3c5438af60de6398")}, { $set : qa2 })
> db.so.find()
{ "_id" : ObjectId("520136af3c5438af60de6398"), 
               "question 1" : "the answer is 1",
               "question 2" : "the answer is 2" }