我在MongoDB中存储了以下数据
db.users.insert({id: 1,user: {firstname:"John",lastname:"Cena",email:["jc@wwe.com","jc1@wwe.com"],password:"YouCantSeeMe",address:{street:"34 some street", country:"USA"}}})
我查询如下,期望第一个查询不起作用,但第二个查询将不起作用。令我惊讶的是,情况恰恰相反。
此查询有效
val query1 = BSONDocument("user.firstname"->user.firstName)
这不是
val query2 = BSONDocument("user"-> BSONDocument("firstname"->user.firstName))
我观察到query1创建了以下结构(通过在详细模式下运行mongodb,mongodb -v)
{ user.firstname: "John" }
但是query2创建了以下结构
{ user: { firstname: "John" } }
这两个不一样(名字在用户里面吗?)
答案 0 :(得分:0)
它们不一样。
第一个查询有效,因为您使用点表示法比较嵌入文档的字段。
第二个查询失败,因为您将文档作为整体与嵌入文档进行比较。
https://docs.mongodb.com/manual/tutorial/query-embedded-documents/