如何计算 certian collection 中字段 x 为空的文档数量?
How do I count of how many documents the field x is empty inside a certian collection?
我有问题。我有一个 collection orders
。我想检查字段 phone
有多少文档是空的。
那么我如何计算 collection orders
中字段 phone
为空的文档数量?
这是我的 collection orders
:
[
{'_id': 'orders/213123',
'contactEditor': {'name': 'Max Power',
'phone': '1234567',
'email': 'max@power.com'},
'contactSoldToParty': {'name': 'Max Not',
'phone': '123456789',
'email': 'maxnot@power.com'},
'isCompleteDelivery': False,
'metaData': {'dataOriginSystem': 'Goods',
'dataOriginWasCreatedTime': '10:12:12',},
'orderDate': '2021-02-22',
'orderDateBuyer': '2021-02-22',
},
{'_id': 'orders/12323',
'contactEditor': {'name': 'Max Power2',
'phone': '1234567',
'email': 'max@power.com'},
'contactSoldToParty': {'name': 'Max Not',
'phone': '123456789',
'email': 'maxnot@power.com'},
'isCompleteDelivery': False,
'metaData': {'dataOriginSystem': 'Goods',
'dataOriginWasCreatedTime': '10:12:12',},
'orderDate': '2021-02-22',
'orderDateBuyer': '2021-02-22',
},
]
如果您尝试 FILTER
的值是 null
...
FOR o IN orders
FILTER o.contactSoldToParty.phone == null
RETURN o
但是如果你只是想要一个简单的计数,那么我会使用 COLLECT
(参见 docs)...
FOR o IN orders
COLLECT hasPhone = (o.contactSoldToParty.phone != null) WITH COUNT INTO total
RETURN { hasPhone, total }
有两个注意事项,都与文档的结构有关:
- 您可能必须先检查
contactSoldToParty
属性是否存在(或使用 nullish coalescing)
- 确保
phone
属性确实是empty/missing/null - null
不等于空字符串(''
)
我有问题。我有一个 collection orders
。我想检查字段 phone
有多少文档是空的。
那么我如何计算 collection orders
中字段 phone
为空的文档数量?
这是我的 collection orders
:
[
{'_id': 'orders/213123',
'contactEditor': {'name': 'Max Power',
'phone': '1234567',
'email': 'max@power.com'},
'contactSoldToParty': {'name': 'Max Not',
'phone': '123456789',
'email': 'maxnot@power.com'},
'isCompleteDelivery': False,
'metaData': {'dataOriginSystem': 'Goods',
'dataOriginWasCreatedTime': '10:12:12',},
'orderDate': '2021-02-22',
'orderDateBuyer': '2021-02-22',
},
{'_id': 'orders/12323',
'contactEditor': {'name': 'Max Power2',
'phone': '1234567',
'email': 'max@power.com'},
'contactSoldToParty': {'name': 'Max Not',
'phone': '123456789',
'email': 'maxnot@power.com'},
'isCompleteDelivery': False,
'metaData': {'dataOriginSystem': 'Goods',
'dataOriginWasCreatedTime': '10:12:12',},
'orderDate': '2021-02-22',
'orderDateBuyer': '2021-02-22',
},
]
如果您尝试 FILTER
的值是 null
...
FOR o IN orders
FILTER o.contactSoldToParty.phone == null
RETURN o
但是如果你只是想要一个简单的计数,那么我会使用 COLLECT
(参见 docs)...
FOR o IN orders
COLLECT hasPhone = (o.contactSoldToParty.phone != null) WITH COUNT INTO total
RETURN { hasPhone, total }
有两个注意事项,都与文档的结构有关:
- 您可能必须先检查
contactSoldToParty
属性是否存在(或使用 nullish coalescing) - 确保
phone
属性确实是empty/missing/null -null
不等于空字符串(''
)