如何使用 mongoose 通过数组属性查找

krl*_*uiz 3 mongoose mongodb node.js

Products:[
  {
    name: "PSP"
    tags: ["psp","sony","videogames"]
    price: 50
  },
  {
    name: "XBOX ONE"
    tags: ["xbox","one","videogames"]
    price: 50
  },
  {
    name: "Nintendo Wii"
    tags: ["wii","nintendo","videogames"]
    price: 50
  }
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试按标签过滤此列表,我希望获得数组

mongoose.model('products').find({'Products.tags':'PSP'});
Run Code Online (Sandbox Code Playgroud)

我想要的是这个

 {
    name: "PSP"
    tags: ["psp","sony","videogames"]
    price: 50
  }
Run Code Online (Sandbox Code Playgroud)

这不起作用!

Chr*_*n P 5

MongoDB 对字符串进行区分大小写的比较。您正在尝试查找大写字符串PSP,但是您的文档包含小写字符串psp

你可以这样尝试:

mongoose.model('products').findOne({'Products.tags':'psp'}).exec(
    function(err, docs) {
        if (err) return console.error(err);
        console.log(docs.tags);
});
Run Code Online (Sandbox Code Playgroud)