📅  最后修改于: 2023-12-03 14:44:22.438000             🧑  作者: Mango
在 MongoDB 中,我们可以使用查询语言来检查数组是否非空。这在处理查询结果时非常有用。在 Javascript 中,我们可以使用以下方法来实现这个功能。
我们可以在查询语句中使用 $elemMatch 运算符来查找包含非空数组的文档。以下是一个示例查询:
db.collection.find({arrayField: {$elemMatch: {$exists: true, $ne: []}}})
此外,我们还可以通过添加其他条件来进一步筛选文档。例如,我们可以将以上查询与其他条件进行组合:
db.collection.find({field1: 'value1', arrayField: {$elemMatch: {$exists: true, $ne: []}}})
另一个检查非空数组的方法是使用聚合管道。以下是一个示例查询:
db.collection.aggregate([
{$match: {arrayField: {$exists: true}}},
{$project: {arrayNotEmpty: {$ne: ['$arrayField', []]}}},
{$match: {arrayNotEmpty: true}}
])
同样地,我们可以通过添加其他条件来进一步筛选文档。例如,我们可以将以上查询与其他条件进行组合:
db.collection.aggregate([
{$match: {field1: 'value1', arrayField: {$exists: true}}},
{$project: {arrayNotEmpty: {$ne: ['$arrayField', []]}}},
{$match: {arrayNotEmpty: true}}
])
以上是两个在 MongoDB 中检查非空数组的方法。根据具体情况,我们可以选择其中一个或两个方法中的任意一个。