我不知道密钥名称,只能通过值获取记录吗?示例:
db.people.insertMany([
{ id: "1", city: a, zipCode : 1111},
{ id: "2", qty: b, zipCode : 2222},
{ id: "3", qty: c, zipCode : 333},
{ id: "4", qty: e, zipCode : 1111},
{ id: "5", qty: d, zipCode : 4444},
]);
db.people.find( _ : 111)]
{ id: "1", city: a, zipCode : 1111},
{ id: "4", qty: e, zipCode : 1111},
其中"_"表示某个通用密钥。
值111
很可能不会返回值为1111
的文档。不管怎样,你可以用这个:
db.people.aggregate([
{ $set: { _: { $objectToArray: "$$ROOT" } } },
{ $match: { "_.v": 1111 } },
{ $unset: "_" }
])
但它只适用于顶级元素。嵌套文档不在此范围内。