Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 如何创建查找以搜索和数组数组_Meteor - Fatal编程技术网

Meteor 如何创建查找以搜索和数组数组

Meteor 如何创建查找以搜索和数组数组,meteor,Meteor,我已经用下面的代码为我的meteor应用程序创建了一个种子 if (Years.find().count() === 0) { for (y = 1905; y < 2015; y++ ) { Years.insert({ year: y }); } } 这将返回数组的数组 Years.find().fetch(); Array[110] [0 … 99] 0: Object _id: "h

我已经用下面的代码为我的meteor应用程序创建了一个种子

if (Years.find().count() === 0) {
    for (y = 1905; y < 2015; y++ ) {
        Years.insert({
            year: y
        }); 
    }
}
这将返回数组的数组

Years.find().fetch();
 Array[110]
  [0 … 99]
    0: Object
     _id: "hPXZuc54irJQ78mQ5"
     year: 1905
     __proto__: Object
    1: Object
     _id: "Z7nuSCRA8W7nn9j92"
     year: 1906
     __proto__: Object
  [100 … 109]
  length: 110
然后我尝试使用stackoverflow搜索中的$elemMatch

Years.find({year: {$elemMatch:{ year: "1988" } } });
这就是我得到的

LocalCollection.Cursor {collection: LocalCollection, sorter: null, _selectorId: undefined, matcher: Minimongo.Matcher, skip: undefined…}
_selectorId: undefined
_transform: null
collection: LocalCollection
  _docs: LocalCollection._IdMap
    _idParse: function (id) {  // 1079                                                             
   _idStringify: function (id) {  // 1054
   _map: Object
     2BiEQnaFo37MfXgZo: Object
     2LXuNkpH3uq27Wobw: Object

也许有更好的播种方法吗?或者我需要改变我的查询方式吗?

您的收藏实际上每年都有一份文档

.fetch()
生成所有文档的数组

您还将年份作为数字插入,因此需要使用数字进行查询

您的elemmatch查询没有真正意义,它试图查询每个文档中不存在的“年”数组。年是一个数字,而不是你定义的数组

所以你可以这么做

Years.findOne({year: 1988})
要查看mongo(存储数据的地方)的情况,请转到您的mongo控制台

在项目文件夹中

meteor mongo
那你就可以了

meteor:PRIMARY> db.years.find().pretty()
您应该会看到一堆文档,如:-

{ "year" : 1905, "_id" : "XEyPJnQeFpzxwWnWT" }
{ "year" : 1906, "_id" : "eT6Ctz5yQpZ5FpDuE" }
{ "year" : 1907, "_id" : "7jwaxumxT73X9fAK2" }
{ "year" : 1908, "_id" : "aoMJhnNBaMBv2u9ip" }
{ "year" : 1909, "_id" : "Doyta3rnXE5NvwFTY" }
{ "year" : 1910, "_id" : "uHxAsxcyi9GNYeTbN" }
{ "year" : 1911, "_id" : "BG7AmXxdMRjDLG7cp" }

好极了这有助于我解决播种问题,也有助于我理解当您想将year.id转换为实际年份时,这将如何工作。
{ "year" : 1905, "_id" : "XEyPJnQeFpzxwWnWT" }
{ "year" : 1906, "_id" : "eT6Ctz5yQpZ5FpDuE" }
{ "year" : 1907, "_id" : "7jwaxumxT73X9fAK2" }
{ "year" : 1908, "_id" : "aoMJhnNBaMBv2u9ip" }
{ "year" : 1909, "_id" : "Doyta3rnXE5NvwFTY" }
{ "year" : 1910, "_id" : "uHxAsxcyi9GNYeTbN" }
{ "year" : 1911, "_id" : "BG7AmXxdMRjDLG7cp" }