MongoDB-如何在集合和嵌入文档中查找相等项

MongoDB-如何在集合和嵌入文档中查找相等项,mongodb,Mongodb,大师-我陷入了一种无法理解如何从以下集合“配偶”中查询的境地,该集合中嵌入了文档“姓氏”,并检查是否与该文档的“姓氏”相等: { "_id" : ObjectId("50bd2bb4fcfc6066b7ef090d"), "name" : "Gwendolyn", "surname" : "Davis", "birthyear" : 1978, "spouse" : { "name" : "Dennis", "surname" : "Evans", "

大师-我陷入了一种无法理解如何从以下集合“配偶”中查询的境地,该集合中嵌入了文档“姓氏”,并检查是否与该文档的“姓氏”相等:

{
  "_id" : ObjectId("50bd2bb4fcfc6066b7ef090d"),
  "name" : "Gwendolyn",
  "surname" : "Davis",
  "birthyear" : 1978,
  "spouse" : {
    "name" : "Dennis",
    "surname" : "Evans",
    "birthyear" : 1969
  },  
我需要询问:

输出具有相同姓氏的所有配偶的数据(如果姓氏为 配偶中的一方未指定,假设它与 (另一个人的姓名)

我试过这样的方法:

db.task.find({“姓氏”:{“配偶.姓氏”:1}})

但它失败了)

请指导我如何在任何示例/示例中实现这一点?基于此将非常有用:-)


非常感谢

您有三种选择

  • 使用
    $where
    修饰符:

    db.task.find({$where:'this.partney.nam姓氏===this.nam姓氏'})

  • 更新所有文档并添加特殊标志。之后,您将能够通过此标志查询文档。它比
    $where
    更快,但需要更改数据

  • 使用。这很复杂,但它几乎可以让你做任何事情