MongoDB で次の機能が必要です。「entities」という名前のコレクションがあります。これは基本的にエンティティ テキストを格納し、カウントします。コレクションは次のようになります。
[{u'_id': u'facebook', u'n': 120},
{u'_id': u'florida', u'n': 98},
{u'_id': u'vegas', u'n': 94},
{u'_id': u'andrew_mason', u'n': 93},
{u'_id': u'obama', u'n': 85},
{u'_id': u'twitter', u'n': 81},
{u'_id': u'outlook', u'n': 81},
{u'_id': u'delhi', u'n': 75},
{u'_id': u'google', u'n': 74},
{u'_id': u'virginia', u'n': 71}]
ここで、このコレクションを新しいエンティティで更新したいと思います。基本的に、次のような配列で新しいエンティティを用意します。
entitySet = ['google', 'Abhishek_Vaid', 'andrew_mason']
私の意図は、すでにコレクションに含まれているエンティティの数を更新する必要があるということです。コレクションにないエンティティについては、そのカウントを 1 に初期化する必要があります。単一の MongoDB クエリを使用して、これらの両方の効果を達成したいと考えています。これまで、次のクエリを見つけることができました: (これは PyMongo フレーバーですが、それでも MongoDB クエリです)
ENTITY_DB_HANDLE.entities.update (
{'_id' : {'$in' : entitySet} }, {'$inc' : {'n' : 1} }, upsert=True, multi=True )
ただし、このクエリは既存のエンティティ数を更新するだけで、新しいエンティティをプッシュしません。
これに関するアイデアはありますか?