簡體   English   中英

在非Mongoose模式中的嵌套對象上的點符號

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM