当前位置: 首页 > 知识库问答 >
问题:

如何在项目聚合中删除一个文档

刘泰
2023-03-14

我正在使用mongodb atlas,我已经建立了一个值。以下是用户收集的示例文档详细信息。

{"_id":{"$oid":"5f7de1f7e0044c8262f6adbc"},"bio":"Hi, I am a professional software developer, I have strong knowledge on coding.","email":"ats4@gmail.com","displayName":"ats demo","following":[],"name":"ats4demo6880904256665157633","image":" ","status":"active","isPrivate":false}

我试图显示除一个文档外的所有文档。

"{\"collection\":\"users\",\"stages\":[{\"$match\":{\"$and\":[{\"_id\":{\"$oid\":\"%%args.user\"}},{\"following\":{\"$size\":0}}]}},{\"$lookup\":{\"from\":\"users\",\"localField\":\"status\",\"foreignField\":\"status\",\"as\":\"test\"}},{\"$unwind\":\"$test\"},{\"$project\":{\"test._id\":1,\"test.name\":1,\"test.displayName\":1,\"test.image\":1}}]}"

我已经显示了除测试之外的所有值_id:ObjectId(“5f7f193585d5f70c177f6d27”)在项目集合中。但我不能。

你能帮我解决这个问题吗。提前谢谢。

共有1个答案

任昊阳
2023-03-14

我花了一段时间才明白这个问题。我想这就是你要找的。

db.collection.aggregate([
  {
    "$match": {
      "$and": [
        {
          "_id": {
            "$oid": "5f7de1f7e0044c8262f6adbc"
          }
        },
        {
          "following": {
            "$size": 0
          }
        }
      ]
    }
  },
  {
    "$lookup": {
      "from": "collection",
      "localField": "status",
      "foreignField": "status",
      "as": "test"
    }
  },
  {
    "$unwind": "$test"
  },
  {
    "$match": {
      "test._id": {
        $not: {
          $eq: ObjectId("5f7de1f7e0044c8262f6adcc")
        }
      }
    }
  },
  {
    "$project": {
      "test._id": 1,
      "test.name": 1,
      "test.displayName": 1,
      "test.image": 1
    }
  }
])

在这里处理查询

 类似资料:
  • 我想在android studio中删除一个项目,所有文件都应该从目录中删除。 但我需要一个更好的解决方案,以删除它永久在目录中,也与安全模式。 以上所述的最佳解决方案是哪一种,或者是否有任何解决方案?希望能得到解决。谢谢!

  • 问题内容: 我有表,我想将它做成。我该怎么办? 问题答案: Python清单 list.pop(索引) 删除列表[索引] 这些都将修改您的原始列表。 其他人建议使用切片: 复制清单 可以返回一个子集 另外,如果要执行许多pop(0),则应查看collections.deque 从列表的左端提供更高的性能

  • 我想通过聚合pyspark数据帧来分组,同时基于此数据帧的另一列删除重复项(保留最后一个值)。 总之,我想将dropDuplicates应用于GroupeData对象。所以,对于每个组,我只能动态地保留一行。 对于下面的数据帧,直接的组聚合是: 导致以下数据帧: 我希望聚合只使用每个的最新状态。在这种情况下,已在更新为,因此当时,所有基本时间戳大于的聚合应仅对列功能使用此状态。预期的聚合数据帧是:

  • 我已经在GitLab中创建了几个存储库。其中一个是为了测试目的,有一些提交和分支。我想删除或删除此存储库。我该怎么做呢?

  • 问题内容: 我已经研究了许多类似这样的文章和帖子,但在我的情况下不起作用,我只需要使用axios从我的应用程序中的帖子列表中删除一个项目即可。在axios文档中,它说您需要将参数传递给delete方法。另外,在大多数应用中,我都使用过ID,而ID却没有处于状态。但是我不能让它工作。请查看我的整个代码。我知道我的删除方法是错误的,请帮助我修复它: 我还在控制台中看到此错误:未捕获(承诺)TypeEr

  • 我已经查过这个和这个问题了。答案要么过时,要么不正确。