Mongo DB为数组添加新值

时间:2015-09-28 11:06:05

标签: java mongodb mongodb-query

我需要使用数组元素向mongo db内部对象添加值,而不查看其他值。可以提出一些建议。

例如:将订单收集作为,

{_id:'ssdeiieirei33',userId: 213828, enrolLment:{"ADMIN":{"TERM1":["COURSE1","COURSE3"]},"STUD":{"TERM2":["COURSE1","COURSE2"]}}}

这里我需要将新注册(COURSE3)(STUD:{“TERM2”:[“COURSE3”]})添加到enrolLment列而不读取它。 这应该是结果;

 {_id:'ssdeiieirei33',userId: 213828, enrolLment:{"ADMIN":{"TERM1":["COURSE1","COURSE3"]},"STUD":{"TERM2":["COURSE1","COURSE2","COURSE3"]}}}

有可能吗?

1 个答案:

答案 0 :(得分:1)

根据您的需要,如果您不想要重复,可以使用$addToSet;如果允许重复,则可以使用$push

在您的措辞中,我觉得您想使用$addToSet,但请澄清。

<强>更新

你应该使用

collection.update({condition},
    {
        $addToSet: {enrolLment.$userName.$Term : "COURSE3"}
    },
callback)

请注意,我没有测试我的代码。在您的情况下,enrolLment.$userName.$Term应为enrolLment.ADMIN.TERM2。但是如果你有条件,那么你可以使用$表示法来访问这些变量。