コレクション全体のすべてのドキュメントの既存の属性でカスタム python 関数を呼び出し、その結果をその (同じ) ドキュメントに新しいキーと値のペアとして保存したいと考えています。それを行う方法があるかどうかを知ることができますか (各呼び出しは他の呼び出しから独立しているため) ?
気がついcursor.forEach
たのですが、pythonを効率よく使うだけではできないのでしょうか?
簡単な例は、文字列を分割しtext
て no を保存することです。新しい属性としての単語。
def split_count(text):
# some complex preprocessing...
return len(text.split())
# Need something like this...
db.collection.update_many({}, {'$set': {"split": split_count('$text') }}, upsert=True)
しかし、同じドキュメント内の別の属性の値に基づいてドキュメント内に新しい属性を設定することは、まだこの方法ではできないようです。この投稿は古いですが、問題はまだ未解決のようです。