簡體   English   中英

填充不適用於 $regex mongodb

[英]Populate does not work with $regex mongodb

我有這個查詢工作正常但是當我使用正則表達式時子文檔沒有填充

let u = new RegExp(`${req.params.username}`, 'i');

let user = await User.findOne({
  userName: { $regex: u },
}).populate({
  path: 'profiles',
  populate: {
    path: 'companyId',
    match: { _id: { $exists: true } },
  },
});

它總是將子字段返回為空

這個查詢在沒有正則表達式的情況下工作正常

let user = await User.findOne({
  userName: req.params.username,
}).populate({
  path: 'profiles',
  populate: {
    path: 'companyId',
    match: { _id: { $exists: true } },
  },
});

請嘗試下面的代碼,這是經過測試的代碼,'.*'表示如果字符串匹配任何地方像字符串是查找並且我想用外觀搜索它會返回所有包含外觀的記錄。

let user = await User.findOne({
  userName: {
        $regex: `.*${req.params.username}.*`,
        $options: 'i'
      },
}).populate({
      path: 'profiles',
      populate: {
      path: 'companyId',
      match: { _id: { $exists: true } },
   },
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM