javascript - 风 sails js mongodb 填充

标签 javascript node.js mongodb sails.js sails-mongo

我想将 .populate() 与 Sails js 和 MongoDB 一起使用,所以我做了这样的事情:

我正在使用最新版本的 Sails、MongoDB 和 Node。

我的模型看起来像:

// User.js
module.exports = {
  attributes: {
    name: {
      type: 'string'
    },
    pets: {
      collection: 'pet',
      via: 'owner'
    }
  }
};


// Pet.js
module.exports = {
  attributes: {
    name: {
      type: 'string'
    },

    owner: {
      model: 'user'
    }
  }
};

我使用了以下与文档相同的内容:

User.find()
.populate('pets')
.exec(function(err, users) {
  if(err) return res.serverError(err);
  res.json(users);
});

但我得到以下输出:

[
  {
    "pets": [],
    "id": "58889ce5959841098d186b5a",
    "firstName": "Foo",
    "lastName": "Bar"
  }
]

最佳答案

如果您只需要查询狗。您可以同样轻松地反转查询。

Pet.find() //or what you want with {}
 .populate('users')
 .exec(err, petsWithUsers)

但如果不是:

User.find()
      .populate('pets')
      .exec(err, users) ...

这将返回所有用户 (User.find()) 并且只填充狗类型的宠物 (populate('pets', {type: 'dog'})).如果您的结果中有没有狗的用户。

更多信息和引用:here

关于javascript - 风 sails js mongodb 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41852485/

相关文章:

javascript - 如何将 API 响应插入 HTML

node.js - 控制台说下一个未定义

javascript - Angular2重复标识符 'PropertyKey'

node.js - Sails.js:如何在 assets/js/files.js 中使用 i18n 函数

mysql - 将 MySQL 查询转换为 mongoDB

mongodb - 将聊天消息存储在 mongodb 集合中是个好主意吗?

mongodb - 无法连接到 MongoLab "auth fails"错误

javascript - 如何使用 * 屏蔽 keyup 上的前五位数字

javascript - 在 Javascript 中将字符串转换为正则表达式

javascript - 从 React 中的文件夹加载本地存储图像的正确方法