将Doc属性作为参数传递到Mongodb上的函数中
Passing Doc attribute as a parameter into function on Mongodb
我用mongodb-js脚本文件定义了以下函数:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
db[col_old].find(
{ dateAttribute : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
我这样调用函数:
populateNewCollection(db.getSiblingDB('tracking'),'TRACKING_DATA','TRACKING_DATA.old',1, 'datecreated' )
由于某种原因,这会无声地失败,但是,如果我硬编码dateAttribute
参数,它的工作方式如下:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
db[col_old].find(
{ 'datecreated' : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
我不确定我在这里需要做什么——我主要是一名java开发人员,所以我认为在字符串中传递会起作用。我需要在方法中做一些后处理来确认这是一个mongo-doc属性吗?
编辑:
我甚至尝试在函数中将其声明为var,但它仍然无法工作:
function populateNewCollection(db, col_new, col_old, daysBack, dateAttribute) {
var date = new Date();
date.setDate(date.getDate() - daysBack);
var dateAt = dateAttribute;
var d = 'datecreated';
db[col_old].find(
{ d : {$gte: new Date("09/01/2014")}}
).sort({_id: -1}).forEach(
function(row) { db[col_new].insert(row); } ); }
var query= {};
和
query["datecreated"] = {"$gte":new Date("09/01/2014")}
在find方法中可以传递查询对象。
相关文章:
- MongoDB map/reduce,forEach不是一个函数
- 了解存储的MongoDB javascript函数中MongoDB命令的返回类型
- 如何使用monk/node.js调用mongodb函数
- MongoDB:如何调用另一个JS文件中定义的函数
- 查询Mongodb时混合使用field和js函数
- (Node.js)如何更改mongoDB函数中的全局变量
- MongoDB 的集合构造函数是否仅在集合不存在时才创建集合
- NodeJS put array in MongoDB doc.validate 不是一个函数
- 我在nodejs/mongodb上的更新函数上做错了什么
- 如何在nodejs/mongodb上创建一个更新函数
- 在 mongoDB 中存储带有函数的对象和其他对象
- 使用预定义的函数从mongodb/mongoose获取数据
- 是否可以将映射集合名称的名称作为MongoDB映射函数中键的一部分
- 如何使用mongoose获取MongoDB中findAndModify函数的返回值
- 编写mongodb REST API的通用查询函数
- NodeJS的MongoDB函数文档
- 用MongoDB-Java加载javascript函数
- 用Java在system.js-MongoDB中保存一个javascript函数
- 在MongoDB中's原生NodeJS驱动程序,何时使用MongoClient构造函数,何时使用Db构造函数
- 使用mongodb函数的字符串