在 XPages 视图中过滤掉数据

Filter out data in XPages view

有一个 Notes 视图 (view1)。view1 中的每个文档都有 ID 和名称的信息。 然后,在另一个 DB.The 中有另一个视图 (view2) view2 中的每个文档也有 ID 和名称的信息。

作为"XPages view",我想显示view1中被view2数据过滤掉的文档。

例如, DB1 中的 view1 有 4 个文档。

Doc1  - ID1, AAA
Doc2  - ID2, BBB
Doc3  - ID3, CCC
Doc4  - ID4, DDD

DB2 中的 view2 有 2 个文档。

Doc1  - ID2, BBB
Doc2  - ID3, CCC

我希望将数据视为按 view2 数据过滤掉的 XPages 视图。这可行吗?

Doc1  - ID1, AAA
Doc2  - ID4, DDD

我觉得如果我想通过“按列值过滤”选项获取下一个数据是可能的。但我想在 XPages 视图中得到相反的结果。

Doc1  - ID2, BBB
Doc2  - ID3, CCC

如果您为每个视图检索一个 DocumentCollection,则可以对这些 NotesCollection 使用以下集合操作:Intersect、Subtract 和 Merge。我认为你需要减去你的情况。根据我的经验,这些操作可能会非常慢。

参见,例如:https://www.ibm.com/support/knowledgecenter/en/SSVRGU_8.5.3/com.ibm.designer.domino.main.doc/H_SUBTRACT_METHOD_COLLECTION.html

您没有在视图 1 的结果中过滤掉视图 2 中的文档。因为它们是两个不同的数据库,所以它们不是同一个文档。至少,UNID 和 NoteID 会有所不同,因为它们是文档的属性,所以它们是不同的文档。对于您选择包含在问题中的字段子集,它们只是具有相同的值。

您需要将 ViewEntries 提取到仅使用所需值的 Java 对象列表中,然后进行相应的过滤。

唯一的选择是为 IsInDatabaseTwo 在数据库 1 中的文档中写入额外的 属性,然后您可以在视图的选择公式中对其进行过滤。