我想搜索邮递员发送的具有stepPath = url的_id。下面是嵌套的文档结构
[
{
"_id": "5ebf028e989a2e2628d9d3f6",
"funnelName": "Mortgage Leads1",
"group": "Mortgage",
"category": "Finance",
"funnelStep": [
{
"viewsStorage": [
{
"_id": "5ebf028e989a2e2628d9d3f8",
"viewsCounter": {
"currentDate": "2000-12-31T18:30:00.000Z",
"viewsNo": 0
}
}
],
"_id": "5ebf028e989a2e2628d9d3f7",
"stepType": "Advertorial",
"stepName": "Angle Ver 1",
"stepPath": "google12.com",
"isTracking": true
}
],
"__v": 0
},
{
"_id": "5ec15febb8a83019bc966932",
"funnelName": "Mortgage Leads",
"group": "Mortgage",
"category": "Finance",
"funnelStep": [
{
"viewsStorage": [
0,
0
],
"_id": "5ec15febb8a83019bc966933",
"stepType": "Advertorial",
"stepName": "Angle Ver 1",
"stepPath": "google.com",
"isTracking": false
},
{
"viewsStorage": [
1,
0
],
"_id": "5ec15febb8a83019bc966934",
"stepType": "Optin",
"stepName": "21 Day Plan",
"stepPath": "fb.com",
"isTracking": true
},
{
"viewsStorage": [
2,
0
],
"_id": "5ec15febb8a83019bc966935",
"stepType": "Checkout",
"stepName": "Checkout Ver 1",
"stepPath": "google.com",
"isTracking": true
}
],
"__v": 0
}]
我正在使用的结构模型-
const mongoose = require('mongoose')
const funnel = new mongoose.Schema({
funnelName:{
type:String,
unique:true
},
group: String,
category: String,
funnelStep: [{
stepType: String,
stepName: String,
stepPath: String,
isTracking: Boolean,
viewsStorage: []
}] })
mongoose.model('Funnel',funnel)
邮递员发送的JSON-
{
"funnelName":"Mortgage",
"url" : "google12.com",
"user_id" : "BATR0001",
"Date": 1 }
邮递员收到的回复-
[]
获取我正在使用的方法-
router.get('/',function(req,res){
Funnel.find({"Funnel.funnelStep.stepPath":req.body.url},function(err,funnels){
if(err){
console.log(err)
}else{
console.log(req.body.url)
console.log(funnels)
return res.json(funnels)
}
}) })
除此以外,我也尝试过以下方法-
Funnel.find({stepPath:req.body.url},function(err,funnels){.....}
Funnel.find({stepPath:req.params.url},function(err,funnels){....}
以上都不起作用,仅返回NULL或空数组。
有人可以协助我如何查询?
根据您提供的数据模型,查询路径"Funnel.funnelStep.stepPath"
似乎不正确。 Funnel
部分表明应该有一个名为Funnel
的嵌套对象,而根据您的模式,路径应以funnelStep
开头,请尝试:
Funnel.find({"funnelStep.stepPath":req.body.url},function(err,funnels){
if(err){
console.log(err)
}else{
console.log(req.body.url)
console.log(funnels)
return res.json(funnels)
}
}) })