如何更新mongodb中的对象(关联数组)

时间:2014-07-10 15:19:19

标签: node.js mongodb

我有一个包含180,000个文本文件的文本语料库,我想在Mongo中构建一个简单的单词索引。每篇文章都有一个uniqueID,并且已经被标记化。理想情况下,我的索引中的每个条目都是这样的:

{ 
  _id: "shuttle",
  instances: {
   article_1: 5,
   article_890: 1,
   article_3001: 10
  }
}

该数字是指该词出现在该键中标识的文章中的次数。

我正在迭代Node中的文章。程序第一次看到该单词时,它不在集合中。

为了速度,我想一次约1000篇文章。因此,我将为这1000篇文章提供一系列标记和实例对象,我需要将该对象与Mongo中的所有文章组合在一起 - 并为该标记创建该文档如果它不存在。

如何组合对象或在Mongo中创建它们?

1 个答案:

答案 0 :(得分:0)

如果要在mongo中向现有数组添加数据,则需要使用“update”然后使用$ push(对于数组)或#addToSet(如果需要唯一性),或者只需$ set来添加数据在列表中。

UPDATE:在你的情况下 - 这不是一个数组,而是一个要添加的键值,所以看一下这个例子: 将数据:article_300:3添加到带有_id的项:awesomeWord, 你需要运行查询:

db.collection.update({"_id":"awesomeWord"},{"instances":{$set: {NEW_KEY : NEW_VALUE}}},false,true);

其中NEW_KEY是article_300 和NEW_VALUE是3

这会回答你的问题吗?