Javascript 添加并查找嵌入的文档

Javascript 添加并查找嵌入的文档,javascript,mongodb,node.js,coffeescript,Javascript,Mongodb,Node.js,Coffeescript,我使用的是MongoDB+Node.js+Mongoose,并且customphone被嵌入到Account中。 当我添加一个像这样的新嵌入文档时,效果很好: account.custphones.push { phone: '123456' } account.save (err, res) -> console.log res

我使用的是MongoDB+Node.js+Mongoose,并且
customphone
被嵌入到
Account
中。 当我添加一个像这样的新嵌入文档时,效果很好:

account.custphones.push { phone: '123456' }
                            account.save (err, res) ->
                                console.log res 
                                if err 
                                    throw err
但当我搜索时:

account.custphones.find {phone: "123456"}, (err, custphone) ->
它说
TypeError:Object[Object Object],[Object Object],[Object Object]没有方法“find”


我想获取嵌入帐户的Custphone。

似乎帐户是您的文档,而Custphone是您帐户文档中的一个属性。您可能需要尝试以下操作:account.find{custphones.phone:“123456”}。。。我想你只需要使用“点”符号。我真的不知道nodejs,所以我不确定正确的语法,但重点是看“点”符号。@agracian这是有道理的,但我只得到Account对象。我希望能够拥有Custphone对象。Custphone是一个内嵌的帐户文档。我认为这是不可能的。我遇到过这样的问题,在所有的搜索中,你总是会得到一个包含搜索匹配内容的文档。因此,在这种情况下,您最终要做的是找到与您的搜索匹配的account对象,然后使用
account.custphones
@agracian访问嵌入对象-如果我使用account.custphones,我将不得不在数组中循环。拥有这个目标会很好。很难相信他们没有想到这一点。谢谢,我知道它很古老,但是如果其他人遇到。。。您可以在模式中使用引用,这样您就可以只使用类似于
Custphone.find(…)
的内容搜索Custphone。访问帐户文档时,您可以填充custphones字段。