Node.js 如何从mongoose中的嵌套对象中获取值?
我有一些关于使用mongoose模块的NodeJ的代码,我需要得到嵌套值,让我向您展示: 我创建模式Node.js 如何从mongoose中的嵌套对象中获取值?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一些关于使用mongoose模块的NodeJ的代码,我需要得到嵌套值,让我向您展示: 我创建模式 var clientScheme = mongoose.Schema({ name: Object address: String, number: Number, operator: Object, services: Object, email: String }) 然后我创建模型: var Client = mongoose.model('
var clientScheme = mongoose.Schema({
name: Object
address: String,
number: Number,
operator: Object,
services: Object,
email: String
})
然后我创建模型:
var Client = mongoose.model('Client', clientScheme);
然后进行创建/保存-很简单,我只向您展示第一个client.json
{
"name":{
"first":"John",
"last":"Smith"
},
"address":"Avenue 1",
"number": 7012341,
"email":"john@gmail.com"
}
然后,我需要知道这个客户的名字。我尝试:
clients.find({"name":{"first":"John"}})
不起作用
有什么问题吗?您可以通过以下方式完成此操作:
db.clients.find({"name.first":"John"})
您应该使用虚线表示法:
Client.find({"name.first": "John"}, function(err, clients){
// your callback body here
});
它不起作用,因为您试图找到一个“名称”与以下内容完全相同的记录:
{first: "John"}
但是你的客户的名字是:{第一个:“约翰”,最后一个:“史密斯”}
因此,以下任何查询都将找到您的客户:
clients.find({"name.first": "John"}) or
clients.find({"name.last": "Smith"}) or
clients.find({"name": {first: "John", last: "Smith"}})
希望能有帮助