在MongoDB中,可以使用聚合管道操作来比较两个数组并返回差异。下面是一个包含代码示例的解决方法:
假设有两个集合:collection1和collection2,每个集合包含一个名为"array"的字段,该字段是一个数组。
db.collection1.aggregate([
{
$lookup:
{
from: "collection2",
localField: "array",
foreignField: "array",
as: "matched_docs"
}
}
])
db.collection1.aggregate([
{
$lookup:
{
from: "collection2",
localField: "array",
foreignField: "array",
as: "matched_docs"
}
},
{
$project:
{
_id: 0,
array: 1,
matched_docs: { $size: "$matched_docs" }
}
},
{
$match:
{
matched_docs: { $eq: 0 }
}
}
])
以上代码将返回在collection1中存在但在collection2中不存在的文档。可以根据需要进行调整和扩展。