找到了一些魔力

时间:2013-10-04 04:57:43

标签: regex meteor

在Mongo FIND(regexp)中,找到的记录数量与Meteor不同。

mongodb方:

> db.products.find({name:/clp/ig}).count()
4

crome js console:

> products.find({name:/clp/ig}).count()
2

数据非常简单:

{ "_id" : ObjectId("514d39f087696bb4cc3b549d"), "code" : "P615", "name" : "PENNASOL         WERKZEUGMASCHINENGETRIEBEOEL CLP 68" }
{ "_id" : ObjectId("514d39f087696bb4cc3b549e"), "code" : "P616", "name" : "PENNASOL         WERKZEUGMASCHINENGETRIEBEOEL CLP 100" }
{ "_id" : ObjectId("514d39f087696bb4cc3b549f"), "code" : "P617", "name" : "PENNASOL         WERKZEUGMASCHINENGETRIEBEOEL CLP 150" }
{ "_id" : ObjectId("514d39f087696bb4cc3b54a0"), "code" : "P618", "name" : "PENNASOL         WERKZEUGMASCHINENGETRIEBEOEL CLP 220" }

集合

var products = new Meteor.Collection('products');

Meteor.publish( 'products', function(){
  products.find();
});

可能是个错误吗?在哪里?

ps:在不同的计算机上查看。同样的魔力。

2 个答案:

答案 0 :(得分:0)

拨打电话时,数据可能尚未在客户端上。你在任何地方使用它吗?数据仅在使用时获取,因此当您在客户端上执行find时,您将获得已存在的结果,而其他项目只是通过网络开始。

测试是否是这种情况:

  • 在服务器上执行相同的查找(例如,在Meteor.startup中)并记录结果。
  • 在客户端上,执行Products.find({}).fetch();。等一段时间,然后再进行查询。

答案 1 :(得分:0)

所有数据都太旧(可能是年份)。

products.find({name:/clp/ig}).fetch();
答案是:

P615   PENNASOL WERKZEUGMASCHINENGETRIEBEOEL CLP 68
P617   PENNASOL WERKZEUGMASCHINENGETRIEBEOEL CLP 150

其他

products.find({name:/clp 220/ig}).fetch();
答案是

P618   PENNASOL WERKZEUGMASCHINENGETRIEBEOEL CLP 220

这真的很神奇。