javascript - MongoDB => findOne 或 find 查询下一个对象? ( meteor / react )

标签 javascript mongodb meteor reactjs

想要找到与当前相关的下一个和上一个对象。

这就是我的

this.props._id = currentId;

// Fetch current object data
data.video = Videos.findOne({_id: this.props._id});

// Using votes string from object above to find me objects 
data.next = Videos.findOne({votes: {$gte: data.video.votes}});
data.previous = Videos.findOne({votes: {$lte: data.video.votes}};

我知道这是不正确的,它肯定会返回对象,但它不会是最近的对象,而且我也有可能返回当前对象。

我想做的是返回我的选择器是投票的下一个或上一个对象,我还想确保使用 Id 来排除当前对象,那么几个对象也很有可能具有相同的编号票数。

现在已经连续进行了 12 个小时,现在差不多回到了我开始的地方,所以非常感谢一些例子让我全神贯注,不确定我是否应该使用 find 或 findOne。

完整代码如下

VideoPage = React.createClass({
  mixins: [ReactMeteorData],
  getMeteorData() {
    var selector = {};
    var handle = Meteor.subscribe('videos', selector);
    var data = {};
    data.userId = Meteor.userId();
    data.video = Videos.findOne({_id: this.props._id});
    data.next = Videos.findOne({votes: {$gte: data.video.votes}});
    data.previous = Videos.findOne({votes: {$lte: data.video.votes}};
    console.log(data.video.votes);
    console.log(data.video);
    console.log(data.next);
    console.log(data.previous);


    return data;
  },


  getContent() {
    return <div>
    {this.data.video.votes}
      <Youtube video={this.data.video} />
    <LikeBox next={this.data.next._id} previous={this.data.previous._id} userId={this.data.userId} video={this.data.video} />
    </div>
    ;
  },


  render() {
    return <div>

      {(this.data.video)? this.getContent() :
        <Loading/>
      }

    </div>;
  }
});

最佳答案

你需要:

  • 排除当前id
  • 按合适的方向排序
  • 只选择一个结果

js:

data.video = Videos.findOne({ _id: currentId });

// object with next highest vote total
data.next = Videos.findOne({ _id: { $ne: currentId },
  votes: { $gte: data.video.votes }},{ sort: { votes: 1 }});

// object with next lowest vote total
data.previous = Videos.findOne({ _id: { $ne: currentId },
  votes: { $lte: data.video.votes },{ sort: { votes: -1 }});

关于javascript - MongoDB => findOne 或 find 查询下一个对象? ( meteor / react ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33600277/

相关文章:

javascript - 单击 Meteor 中的链接时下载文件

ubuntu - 自动生成的 meteor .js : production fails

javascript - Mongodb错误查询导致连接丢失

javascript - 仅当存在另一个属性时才允许使用 Typescript 属性

javascript - Mp3 ID3标签,令人困惑的APIC框架结构

javascript - 修改从 AngularJs 获取的元素

mongodb - Ansible - 在 wait_for 时重复任务

mongodb 获取分组的最新日期

javascript - 不使用 Google 凭据从 Meteor 项目注销

javascript - Sails.js - 如何避免 Sails JS 在数据库表上查找 Id(因为该表没有 id 列)