首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在引用子文档数组中找到猫鼬

在引用子文档数组中找到猫鼬
EN

Stack Overflow用户
提问于 2015-10-20 14:12:27
回答 1查看 695关注 0票数 0

我正在试图找到来自ip.The访问模式的某些访问,如下所示:

代码语言:javascript
复制
var VisitSchema = new Schema({
visitId:        String,
ip:             [{ type: Schema.Types.ObjectId, ref: 'VisitorIp' }]
});
mongoose.model('Visit', VisitSchema);

ip模式如下所示:

代码语言:javascript
复制
var VisitorIpSchema = new Schema({
ip:             String,
country:        String
});
mongoose.model('VisitorIp', VisitorIpSchema);

当我试图运行特定ip的正常查找时:

代码语言:javascript
复制
Visit.find({ip.ip:myIp}))
.populate('ip')
.exec(function(err, visits){
  console.log(visits)
})

它返回一个空数组。mongo数据库中的所有记录看起来和行为正常。

请帮帮我,我的想法已经用完了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 19:49:31

您可以采取的一种不太优雅的方法是在填充之后进行查询,即获得所有访问,使用查询筛选器填充访问的ip文档,然后当查询执行时,您将需要手动筛选出没有符合填充条件的任何IP文档的访问文档,如下所示:

代码语言:javascript
复制
Visit.find({})
    .populate('ip', null, { "ip": myIp } )
    .where('ip.ip').equals(myIp) /* where('ip.ip').in([myIp]) */
    .exec(function(err, visits){
        visits = visits.filter(function(doc){
            return visits.ip.length;
        })
        // do stuff with visits
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33239045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档