根据子文档值searchmongodb文档
我正在使用mongoosejs,并为用户使用如下的MongoDB模式:
{ "_id" : ObjectId("my local id"), "gravatar" : "user gravatar", "username" : "users username", "displayName" : "Shivaraman I", "provider" : "facebook", "providerData" : { "accessToken" : "facebook access token", "work" : [ user work history ], "verified" : true, "updated_time" : "2015-02-04T13:23:44+0000", "timezone" : 1, "name" : "Shivaraman Iyer", "locale" : "en_GB", "link" : "user link", "last_name" : "Iyer", "gender" : "male", "first_name" : "Shivaraman", "email" : "email on facebook", "education" : [ facebook user education list ], "id" : "user's facebook id" }, ... "lastName" : "Iyer", "firstName" : "Shivaraman", }
我想在providerData
根据他/她的facebook id
来search用户。 我做了很多search,只find了数组子文档的elemMatch
方法。 但是我需要的东西适用于这种格式的子文档。
一直在寻找很多,没有find任何东西。 任何帮助将是伟大的。
谢谢
var query = collection.find(); query.where('providerData.id', id);
然后执行查询。 这将解决问题
它非常简单,你可以使用简单的find()
,你可以直接传递对象的位置作为键和它的值作为你的投影。
在你的情况
db.collection.find({ "providerData.id":id });
这会给你结果。
将集合关键字replace为您的集合名称。