Node.js 具有属性的查询中mongodb对象的筛选器列表

Node.js 具有属性的查询中mongodb对象的筛选器列表,node.js,angular,Node.js,Angular,我正在使用angular、nodejs、mongodb和mongoose-paginate-v2以及mongoose库 我需要按可用性属性筛选房间列表 hoe.component.ts getRooms(page = 1) { // console.log('error'); this.roomservice.getRooms(page).subscribe( response => { if(response.rooms

我正在使用angular、nodejs、mongodb和mongoose-paginate-v2以及mongoose库

我需要按可用性属性筛选房间列表

hoe.component.ts

getRooms(page = 1)
  {
      //  console.log('error');
    this.roomservice.getRooms(page).subscribe(
      response =>
      {

        if(response.rooms)
        {
          this.rooms = response.rooms;
    

          // navegacion de paginación
          this.totalPages = response.totalPages;
          console.log(this.totalPages);

          var number_pages = [];
          for(var i = 1; i <= this.totalPages; i++)
          {
            number_pages.push(i);
          }
          this.number_pages = number_pages;

          if(page >=2)
          {
            this.prev_page = page-1;
          }
          else
          {
            this.prev_page = 1;
          }
          if(page < this.totalPages)
          {
            this.next_page = page+1;
            console.log(page);
          }
          else
          {
            this.next_page = this.totalPages;
          }

        }
        else
        {
         this.router.navigate(['admin/listrooms']);
         console.log('error');
        }
      },
      error =>
      {
        console.log(error);
      }
    );
  }


<div class="row">
    <ul class="list-group">


        <li class="list-group-item" *ngFor="let room of rooms">
            <div class="row">
                <div class="col-sm-2">
                    <div class="" *ngIf="!room.image1 || room.image1 == undefined; else noimage">
                        <img class="img-list" src="{{ url + 'avatar/' + 'no-image.png'  }}" alt="student">
                    </div>
                    <ng-template #noimage>
                        <img class="img-list" src="{{ url + 'avatar/' + room.image1 }}" alt="student">
                    </ng-template>
                </div>
                <div class="col-sm-10">
                    <p class="title-room">Title {{ room.title }}</p>
                    <p class="data-room"> {{ room.location }}</p>
                    <p class="data-room"> {{ room.description | less:[150, '...'] }}</p>
                    <p class="data-room"> Room type {{room.roomtype}}</p>
                    <p>&#163; {{ room.price }} pm</p>
                    <a [routerLink]="['/room', room._id]" class="btn btn-danger">View</a>
                </div>
            </div>
        </li>

    </ul>
</div>
<ul class="pagination">
    <li class="page-item">
        <a class="page-link" [routerLink]="['/admin/listrooms', prev_page]">&laquo;</a>
    </li>
    <li class="page-item" *ngFor="let num of number_pages">
        <a class="page-link" [routerLink]="['/admin/listrooms', num]" href="">{{ num }}</a>
    </li>
    <li class="page-item">
        <a class="page-link" [routerLink]="['/admin/listrooms', next_page]">&raquo;</a>
    </li>
</ul>

如何筛选availability property=true的房间列表???用烟斗?我看过mongoose文档,但没有发现任何有用的东西。

我希望我没有遗漏什么。 如中所述

因此,第一个参数是查询对象。将您的查询放到那里
{availability:true}

Room.paginate({availability:true}, options, ...

我找到了使用自定义管道的其他解决方案

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'filter'
})
export class FilterPipe implements PipeTransform {

  transform(room: Array<any>, availability: string): Array<any> {
    return room.filter(room => room.availability === 'true');
}
  

}


<li class="list-group-item" *ngFor="let room of rooms | filter:room.availability">
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
名称:“过滤器”
})
导出类FilterPipe实现PipeTransform{
转换(房间:阵列,可用性:字符串):阵列{
return room.filter(room=>room.availability==='true');
}
}

  • 您的数据模型是否提供可用性?例如,room.available==true.yes我的模型具有room.availability
    Room.paginate({availability:true}, options, ...
    
    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
      name: 'filter'
    })
    export class FilterPipe implements PipeTransform {
    
      transform(room: Array<any>, availability: string): Array<any> {
        return room.filter(room => room.availability === 'true');
    }
      
    
    }
    
    
    <li class="list-group-item" *ngFor="let room of rooms | filter:room.availability">