我在mongodb有这个收藏
{
"_id" : "777",
"someKey" : "someValue",
"someArray" : [
{
"name" : "name1",
"someNestedArray" : [
{
"name" : "value"
},
{
"name" : "delete me"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想找到基于someArray.someNestedArray.name的文档,但我找不到任何有用的链接所有关于更新嵌套数组的搜索结果我正在尝试这个但是什么都不返回
db.mycollection.find({"someArray.$.someNestedArray":{"$elemMatch":{"name":"1"}}})
db.mycollection.find({"someArray.$.someNestedArray.$.name":"1"})
Run Code Online (Sandbox Code Playgroud)
还有别的东西
我如何通过双嵌套数组mongodb中的元素找到?
这是我的架构:
var userschema = new mongoose.Schema({
user: String,
follow: [String],
imagen: [{
title: String,
date: { type: Date, default: Date.now }
}]
});
Run Code Online (Sandbox Code Playgroud)
这是代码:
usermodel.findOne({ user: req.session.user }, function (err, user){
usermodel.aggregate({$unwind: '$imagen'},
{$match: { _id: { $in: user.follow } }},
{imagen: true},
{$sort: {'imagen.date': 1}},
function (err, images){
console.log(images);
res.render('home.ejs', {
user: user,
following: images
});
});
});
Run Code Online (Sandbox Code Playgroud)
在follow包含了用户的_id.
代码有效,除非我包含$match.我使用$match过滤结果,只获取我正在关注的用户的图像,但是console.log告诉我aggregate搜索的结果是未定义的,但是当我不写$match查询时,我得到了图像,但我获得了所有图像,而不仅仅是我正在关注的用户的图像.
这有什么解决方案......?
谢谢你的进步!
编辑:
var express = require('express'); …Run Code Online (Sandbox Code Playgroud)