根据结果​​是否具有特定属性列出结果

时间:2018-10-23 17:11:33

标签: node.js mongodb express mongoose

当我列出数据库中的所有用户时,有两种响应。

{
_id: "5bcf4f4d48a3067897c22344",
__v: 0
},
{
_id: "5bcf507b65f77778ab23b53f",
firstname: "major",
lastname: "general",
__v: 0
}

如您所见,存在一个没有名字和姓氏道具的条目。此时,我正在尝试清理数据库并删除所有没有firstname或lastname属性的数据库。这就是我所拥有的。

async deleteUsersWithoutNames() {
    const usersWithNoName = await this.userModel.find()
        .where((response: any) => response.hasOwnProperty('firstname')).equals(false);
    return usersWithNoName;
  }

这不起作用,并表示path must be a string or object的尖叫声。

这是userModel初始化。

  private userModel = new UserEntity().getModelForClass(UserEntity);

UserEntity类将Typegoose扩展了Typegoose

我该如何继续?

1 个答案:

答案 0 :(得分:1)

现在,我认为这是解决您的查询的更好方法

https://docs.mongodb.com/manual/reference/operator/query/exists/

async deleteUsersWithoutNames() {
    return await this.userModel.where({firstname: {$exists:false}})       
}