通过Mongoose,Node.js,MongodDB中的特定属性查找嵌入式文档

var*_*rin 6 mongoose mongodb node.js express

对于这个应用程序,我使用Node.js,MongoDB,Mongoose和Express

所以我有一个Param对象,其中包含一系列Pivots,我想从枢轴中读取某些数据,如下所述

---in models.js-------------------------
    var Pivot = new Schema({
    value : String
  , destination : String
  , counter : Number
 });


var Param = new Schema({
    title : String
  , desc : String
  , pivots : [Pivot]
});


------------- in main.js --------------

var Param = db.model('Param');


app.get('/:title/:value', function(req, res){
    Param.findOne({"title":req.param('title')}, function(err, record){
           console.log(record.pivots);
           record.pivots.find({"value":req.param('value')}, function(err, m_pivot){
                    pivot.counter++;
                    res.redirect(m_pivot.destination);
           });
           record.save();
    });
});
Run Code Online (Sandbox Code Playgroud)

我知道代码工作到console.log(record.pivots),因为我有一个带有正确的数据透视文档的doc集合.

但是,似乎没有一种find方法可以让我通过模式中定义的'value'属性匹配嵌入文档.是否可以使用.find()或.findOne()搜索这个嵌入文档数组,如果没有,是否有一些通过mongoose访问它的简单方法?

bus*_*ted 0

我认为您正在寻找“$in”关键字?

如:

{a: {$in: [10, "hello"]}}
Run Code Online (Sandbox Code Playgroud)

来源:MongoDB 查询 CheatSheet