[英]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.