diff --git a/server/core/src/fulltext.ts b/server/core/src/fulltext.ts
index b770983662..cd4b6aea78 100644
--- a/server/core/src/fulltext.ts
+++ b/server/core/src/fulltext.ts
@@ -290,9 +290,7 @@ function getResultIds (ids: Set<Ref<Doc>>, _id: ObjQueryType<Ref<Doc>> | undefin
   const result = new Set<Ref<Doc>>()
   if (_id !== undefined) {
     if (typeof _id === 'string') {
-      if (!ids.has(_id)) {
-        return new Set()
-      } else {
+      if (ids.has(_id)) {
         result.add(_id)
       }
     } else if (_id.$in !== undefined) {
@@ -302,11 +300,13 @@ function getResultIds (ids: Set<Ref<Doc>>, _id: ObjQueryType<Ref<Doc>> | undefin
         }
       }
     } else if (_id.$nin !== undefined) {
-      for (const id of ids) {
-        if (!_id.$nin.includes(id)) {
-          result.add(id)
-        }
+      for (const id of _id.$nin) {
+        ids.delete(id)
       }
+      return ids
+    } else if (_id.$ne !== undefined) {
+      ids.delete(_id.$ne)
+      return ids
     }
   } else {
     return ids