Meteor mongodb插入一个数组文件

时间:2016-02-18 09:53:51

标签: meteor

此代码将服务器insert的一些文档集合在一起,以便客户端稍后find。 我需要为给定的task返回数组 但该页面正在说

  

未收到任何数据

为什么这样以及如何解决?感谢

//Both
FooterButtons2 = new Mongo.Collection('footerButtons2');

//Server
Meteor.publish('footerButtons2', function(){
  return FooterButtons2.find();
});

FooterButtons2.insert(
  { "task1": ["submit"]},
  { "task2": ["cancel","continue"]}
);

//client
Meteor.subscribe('footerButtons2');
var res = FooterButtons2.findOne("task1");

1 个答案:

答案 0 :(得分:1)

当你这样搜索时:

var res = FooterButtons2.findOne("task1");

您正在搜索具有" _id"的对象key等于" task1",这是不正确的。 您想要具有键" task1"的对象。在里面。正确的方法是:

var res = FooterButtons2.findOne({
    task1: { $exists: true }
});

但理想情况下,您应该根据值而不是键进行搜索。像这样:

FooterButtons2.insert({
    task: "task1",
    buttons: ["submit"]
}, {
    task: "task2",
    buttons: ["cancel", "continue"]
});

var res = FooterButtons2.findOne({
    task: "task1"
});