Javascript Mongoose检查任何地图条目值中是否存在文本
我们需要在JSON对象内的映射中进行转换。当我们搜索一个项目时,我们将只传递名称,我们需要检查该名称是否在其中一个翻译对象中 例如:Javascript Mongoose检查任何地图条目值中是否存在文本,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我们需要在JSON对象内的映射中进行转换。当我们搜索一个项目时,我们将只传递名称,我们需要检查该名称是否在其中一个翻译对象中 例如: "item" : { "name" : { "en_US": "Hello" "id_ID" : "Halo" } } 客户只发送名称,但我们不知道所使用的语言(例如,Halo),我们需要以任何语言返回带有该名称的文
"item" : {
"name" : {
"en_US": "Hello"
"id_ID" : "Halo"
}
}
客户只发送名称
,但我们不知道所使用的语言(例如,Halo),我们需要以任何语言返回带有该名称
的文档。我们应该如何定义过滤器对象?到目前为止,我看到的所有示例都要求我们定义要筛选的完整对象信息(例如:item.name.id\u id
)。
非常感谢。如何在Mongoose
find
和paginate
方法中使用它?我建议您试用并发布更新。这样任何人都可以帮忙。我对猫鼬不太了解。让我查一查。
db.collection.aggregate([
{
"$addFields": {//reshape it to match on value field
"field": {
"$objectToArray": "$item.name"
}
}
},
{//reshape again to get the only matching element
"$unwind": "$field"
},
{
$match: {//match condition
"field.v": "Hello"
}
},
{
$project: {//project only what is needed
"field.k": 1,
"item": 1
}
}
])