[英]Dot notation on nested objects not in Mongoose schema
我有一个带有providerData对象的猫鼬模式:
... , providerData: {}, ...
我想根据providerData
对象中对象的ID查询文档。
所以我认为我必须像这样使用点符号:
User.findOne({ providerIDString: providerID }, function(err, user) {...});
哪里
providerIDString is a string like 'providerData.facebook.id'
providerID is the providerData.facebook id
但是,即使查询仍然没有返回结果
db.users.find({"providerData.facebook.id":"THEFACEBOOKID"})
在mongodb shell中返回正确的文档
我是否正确假设发生这种情况,因为在User模式中未定义providerData.facebook
和providerData.facebook.id
?
这是否意味着我必须将它们添加到架构中,还是有办法在非猫鼬架构中的嵌套对象上使用点符号?
我猜测您输入的内容如下:
var providerIdString = 'providerData.facebook.id',
facebookId = "THEFACEBOOKID";
在这种情况下,请使用:
var query = {};
query[provoderIdString] = facebookId;
然后:
db.users.find(query);
瞧! 有用。
这就是从JavaScript中的变量名构造对象的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.