如何 return mongodb 中特定字段的值
How to return specific field's value in mongodb
如何 return MongoDB 中特定文档的特定值?例如,我有一个如下所示的架构:
{
"_id" : "XfCZSje7GjynvMZu7",
"createdAt" : ISODate("2015-03-23T14:52:44.084Z"),
"services" : {
"password" : {
"bcrypt" : "a$tcb01VbDMVhH03mbRdKYL.79FPj/fFMP62BDpcvpoTfF3LPgjHJoq"
},
"resume" : {
"loginTokens" : [ ]
}
},
"emails" : {
"address" : "abc123@gmu.edu",
"verified" : true
},
"profile" : {
"companyName" : "comp1",
"flagged" : true,
"phoneNum" : "7778883333"
}}
我想 return 并存储 profile.flagged 的值,专门用于 _id : XfCZSje7GjynvMZu7
的文档。到目前为止我已经尝试过:
db.users.find({_id:'myfi3E4YTf9z6tdgS'},{admin:1})
和
db.users.find({_id: 'myfi3E4YTf9z6tdgS'}, {profile:admin});
我希望根据分配的值查询 return true
或 false
。
有人可以帮忙吗?谢谢!
MongoDB 总是查询 return 文档对象,而不是单个值。因此,一种方法是使用 shell 代码,例如:
var flagged =
db.users.findOne({_id: 'myfi3E4YTf9z6tdgS'}, {'profile.flagged': 1}).profile.flagged;
请注意使用 findOne
而不是 find
,这样您就可以使用单个文档而不是使用 find
.[=14= 获得的光标]
这里的正确答案是方法.distinct()
(link here)
这样使用:
db.users.find({_id:'myfi3E4YTf9z6tdgS'},{admin:1}).distinct('admin')
结果将是:1
或 0
如何 return MongoDB 中特定文档的特定值?例如,我有一个如下所示的架构:
{
"_id" : "XfCZSje7GjynvMZu7",
"createdAt" : ISODate("2015-03-23T14:52:44.084Z"),
"services" : {
"password" : {
"bcrypt" : "a$tcb01VbDMVhH03mbRdKYL.79FPj/fFMP62BDpcvpoTfF3LPgjHJoq"
},
"resume" : {
"loginTokens" : [ ]
}
},
"emails" : {
"address" : "abc123@gmu.edu",
"verified" : true
},
"profile" : {
"companyName" : "comp1",
"flagged" : true,
"phoneNum" : "7778883333"
}}
我想 return 并存储 profile.flagged 的值,专门用于 _id : XfCZSje7GjynvMZu7
的文档。到目前为止我已经尝试过:
db.users.find({_id:'myfi3E4YTf9z6tdgS'},{admin:1})
和
db.users.find({_id: 'myfi3E4YTf9z6tdgS'}, {profile:admin});
我希望根据分配的值查询 return true
或 false
。
有人可以帮忙吗?谢谢!
MongoDB 总是查询 return 文档对象,而不是单个值。因此,一种方法是使用 shell 代码,例如:
var flagged =
db.users.findOne({_id: 'myfi3E4YTf9z6tdgS'}, {'profile.flagged': 1}).profile.flagged;
请注意使用 findOne
而不是 find
,这样您就可以使用单个文档而不是使用 find
.[=14= 获得的光标]
这里的正确答案是方法.distinct()
(link here)
这样使用:
db.users.find({_id:'myfi3E4YTf9z6tdgS'},{admin:1}).distinct('admin')
结果将是:1
或 0