Mongodbで_$lookup
_を使用して結合コレクションを追加したい。私は以下のようにしています
_{
$lookup:{
from:"User",
localField:"assignedId",
foreignField:"_id",
as:"dataa"}
}
_
現在、2つのコレクションがあります
ser"_id" : ObjectId("56ab6663d69d2d1100c074db"),
のようなユーザーのobjectid
が含まれています
およびTasksassignedId
をstring
として含む__"assignedId":"56ab6663d69d2d1100c074db"
_
今、両方のコレクションに$ lookupを適用すると、IDが一致しないため機能しません。
そのために私はそれをグーグルで調べて、それに含まれる解決策を見つけました
_{ $project: { assignedId: {$toObjectId: "$assignedId"} }}
_
しかし、この解決策は私にはうまくいきません、そのエラーをスローします:
_assert: command failed: { "ok" : 0, "errmsg" : "invalid operator '$toObjectId'", "code" : 15999 } : aggregate failed
_
この問題の解決方法を教えてください。
ありがとう
集約パイプラインでは不可能です。タイプを変換する方法はありません。 Tasksコレクションの「assignedId」のタイプをObjectIdに変更できますか?それ以外の場合は、コードでそれを実行し、ObjectIdを文字列に変換して、別のクエリで使用する必要があります。