node.js - sails.js 多对多查询

标签 node.js many-to-many sails.js waterline

我正在尝试构建一个聊天应用程序。我有一个多对多关联。一个房间有很多用户。并且一个用户可以拥有多个房间。我正在尝试检索同时拥有用户 A (fromUserId) 和用户 B (toUserId) 的房间。我正在尝试这样的事情,但我知道这是不正确的:

Room.find().populate('users', { where:{ id: [fromUserId, toUserId] } }).exec(function(err, rooms){
  console.log(rooms);
});

这里的问题是它返回 users.id = fromUserId or toUserId 的所有房间。我这里需要的是一个查询。

任何帮助表示赞赏。 (:

最佳答案

如果您使用带有水线的 Mongodb,则可以使用 $in

Room.native(function(err, collection) {
collection.find({
    "users" : {
      $in : [fromUserId, toUserId]
    }
  }, function(err, results) {
    if (err) return res.badRequest(err);
    console.dir(results)
  });
});

缺点是它是原生的mongodb功能,不能在其他数据库中使用。

关于node.js - sails.js 多对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29418195/

相关文章:

java - 多对多关系中 @JoinTable 和共享 key 的异常

java - hibernate : How to Join 3 tables in one join table by Annotation?

Postgresql 9.3 - array_agg 挑战

javascript - 使用 passport.js、sails.js 和 sails 生成身份验证保护页面

javascript - 处理 Sails.js 中的异常

javascript - 使用 Node 模块和 Rollup 构建 Web 客户端

javascript - 如何使用 n1ql 查询更新 couchbase 中的数组

javascript - 如果用户在出站调用中未接听,Twilio 会发送语音消息

javascript - Node.js Express 强制客户端跳过缓存(刷新)

node.js - 自定义适配器在 sails v0.10 中失败