给出这些文件:
{
"name" : "User",
"class" : "clazz",
"reference" : "ref",
"classReference" : "clazz+ref",
"room" : "123"
}
如何进行$ lookup来检索这样的文档(不更改文档):
char[] arrayA = {'b', 'c'};
char[] arrayB = ArrayUtils.add(arrayA, 0, 'a');
// arrayB: [a, b, c]
答案 0 :(得分:3)
您可以在mongodb 3.6 及更高版本
中使用以下聚合db.user.aggregate([
{ "$lookup": {
"from": Room.collection.name,
"let": { "ref": { "$concat": ["$class", "$reference"] } },
"pipeline": [
{ "$match": { "$expr": { "$eq": ["$classReference", "$$ref"] } } }
],
"as": "ref"
}},
{ "$project": {
"classReference": { "$arrayElemAt": ["$ref.classReference", 0] },
"room": { "$arrayElemAt": ["$ref.room", 0] },
"name": 1,
"class": 1
"reference": 1
}}
])