recherche

Maison  >  Questions et réponses  >  le corps du texte

mongodb - mongo聚合查询使用$out输出,执行的是替换操作而不是append操作

mongo聚合查询遇到的一个问题

当前对mongo数据库的一张表做一些聚合查询的操作,考虑到数据量太大,从数据库查寻出来结果还是需要插入到数据库,故决定,将查询结果插入到一个临时的集合中,使用mongo的$out操作。根据业务需求,需要执行三次这样的聚合查询,测试发现$out输出到新的集合是,执行替换操作,而不是append操作,以下是官网解释:

现在我依然有这样的需求,将多次聚合的结果放在一张表中,该怎么做?

PHPzPHPz2788 Il y a quelques jours825

répondre à tous(1)je répondrai

  • 滿天的星座

    滿天的星座2017-05-02 09:20:44

    À partir de la version 2.6, la valeur de retour de l'agrégation est un curseur. Puisqu'il s'agit d'un curseur, vous n'êtes pas obligé de mettre en cache l'ensemble des résultats en mémoire sur le client avant de l'utiliser. L'idée simple est de parcourir le curseur et de l'insérer un par un dans la collection cible. Par exemple, en shell :

    db.coll.aggregate([...]).forEach(function(doc) {
      db.target_coll.save(doc);
    });

    répondre
    0
  • Annulerrépondre