【发布时间】:2020-05-16 12:11:42
【问题描述】:
我有以下代码,它从 MongoDB 数据库中的两个不同集合中检索两个数据集
opts := options.Find()
opts.SetProjection(bson.M{
"productId": 1,
"_id": 0,
})
cursor, err := currentProductsCollection.Find(ctx, bson.M{}, opts)
var oldProducts []bson.M
err = cursor.All(ctx, &oldProducts)
cursor, err = newProductsCollection.Find(ctx, bson.M{}, opts)
var newProducts []bson.M
err = cursor.All(ctx, &newProducts)
我希望能够将oldProducts 与newProducts 进行比较,以找出哪些新的productId 出现了,哪些旧的productId 消失了。
这两个变量都加载得很好,我可以很高兴地在调试器中检查它们,但我似乎找不到比较它们的方法。我曾希望能够依次遍历每个范围,对另一个进行查找并获得几片缺失值,但我找不到任何方法。
在过去的三个小时里,我一直带着这个在房子里转悠,所以如果有人有任何建议,我会非常欢迎他们。
我使用的是原版 go.mongodb.org/mongo-driver 驱动程序,而不是 mgo
【问题讨论】:
-
我要感谢 Burak 和 Eklavya 的解决方案。我希望我可以将它们都标记为答案。